Функции библиотеки Csigismember()

Стандартная библиотека C - <signal.h>

Описание

sigismemberФункция входит в стандартную библиотеку C и используется для проверки, находится ли конкретный сигнал в наборе сигналов. Эта функция определена в<signal.h>В заголовочном файле.

Синтаксис

int sigismember(const sigset_t *set, int signo);

Параметр

  • const sigset_t *set: указывает наsigset_tПеременная набора сигналов типа.
  • int signo: Номер сигнала для проверки.

Возвращаемое значение

  • Если сигнал находится в наборе сигналов, вернуть 1.
  • Если сигнал не находится в наборе сигналов, вернуть 0.
  • При ошибке вернуть -1 и установитьerrnoдля указания типа ошибки.

Пример

Ниже приведён пример использованияsigismemberПример программы для функции проверки того, содержит ли набор сигналов конкретный сигнал. Программа инициализирует пустой набор сигналов, добавляетSIGINTсигнал в набор сигналов и проверяет, содержит ли набор сигналовSIGINTсигнал.

Пример

#include <stdio.h>
#include <signal.h>

int main() {
    sigset_t set;

    // Инициализировать набор сигналов пустым
    if (sigemptyset(&set) == -1) {
        perror("sigemptyset");
        return 1;
    }

    // добавить SIGINT в набор сигналов
    if (sigaddset(&set, SIGINT) == -1) {
        perror("sigaddset");
        return 1;
    }

    // Проверить, содержит ли набор сигналов SIGINT
    if (sigismember(&set, SIGINT)) {
        printf("SIGINT находится в наборе\n");
    } else {
        printf("SIGINT отсутствует в наборе\n");
    }

    // проверить, содержит ли набор сигналов SIGTERM
    if (sigismember(&set, SIGTERM)) {
        printf("SIGTERM входит в набор"\n");
    } else {
        printf("SIGTERM не входит в набор"\n");
    }

    return 0;
}

Возможный вывод при запуске приведённой выше примерной программы выглядит так:

SIGINT is in the set
SIGTERM is not in the set

Программа инициализирует пустой набор сигналов, иSIGINTсигнал в набор сигналов и проверяет, содержит ли набор сигналовSIGINTиSIGTERMсигнал, результаты показываютSIGINTсигнал находится в наборе сигналов, в то время какSIGTERMсигнал не находится в наборе сигналов.

Объяснение

  • sigset_t set;: Определяет переменную набора сигналов.
  • ИспользованиеsigemptysetФункция инициализирует набор сигналов как пустой.
  • ИспользованиеsigaddsetФункция будетSIGINTСигнал добавляется в набор сигналов.
  • ИспользованиеsigismemberФункция проверяет, содержит ли набор сигналовSIGINTиSIGTERMсигнал.
  • Вывод показываетSIGINTсигнал находится в наборе сигналов, в то время какSIGTERMсигнал не находится в наборе сигналов.

Примечания

  • sigismemberФункция используется для проверки того, входит ли конкретный сигнал в набор сигналов.
  • Если номер сигнала недействителен,sigismemberфункция вернёт -1 и установитerrnoдля указания типа ошибки.

Стандартная библиотека C - <signal.h>

Другие расширения