Функция 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; )
Когда вы запустите программу, вывод будет:
Сигнал обрабатывается