C ++ signal () - Стандартная библиотека C ++

Функция signal () в C ++ устанавливает обработчик ошибок для указанного сигнала.

signal () Прототип

 void (* signal (int sig, void (* func) (int))) (int);

signalФункция определяет метод для обработки сигнала. Обработчик сигнала можно настроить так, чтобы выполнялось одно из следующих действий:

  • Обработка сигнала по умолчанию.
  • Игнорируйте сигнал.
  • Пользовательская функция вызывается для обработки сигнала.

Он определен в заголовочном файле "> заголовочный файл.

signal () Параметры

  • sig: сигнал для обработки обработчиком сигнала. Может принимать одно из следующих значений:
    • SIGABRT
    • SIGFPE
    • СИГИЛЛ
    • SIGINT
    • SIGSEGV
    • SIGTERM
  • handler: обработчик сигнала, который обрабатывает сигнал. Это может быть одно из следующих значений:
    • SIG_DFL: обработка по умолчанию.
    • SIG_IGN: игнорировать сигнал.
    • Указатель на функцию: определяемая пользователем функция для обработки сигнала. Сигнатура функции должна соответствовать следующему:
       пустое удовольствие (int sig);

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

В случае успеха он возвращает предыдущий обработчик сигнала, а в случае ошибки возвращается SIG_ERR.

Пример: как работает функция signal ()

 #include #include using namespace std; sig_atomic_t signalled = 0; void handler(int sig) ( signalled = 1; ) int main() ( signal(SIGINT, handler); raise(SIGINT); if (signalled) cout << "Signal is handled"; else cout << "Signal is not handled"; return 0; )

Когда вы запустите программу, вывод будет:

 Сигнал обрабатывается

Интересные статьи...