Функція signal () в C ++ встановлює обробник помилок для вказаного сигналу.
signal () Прототип
void (* signal (int sig, void (* func) (int))) (int);
signal
Функція визначає метод для обробки сигналу. Обробник сигналу може бути встановлений таким чином, що виконується одна з наступних дій:
- Обробка сигналу за замовчуванням.
- Ігнорувати сигнал.
- Функція, що визначається користувачем, викликається для обробки сигналу.
Це визначається у файлі заголовка "> файл заголовка.
Параметри сигналу ()
- sig: сигнал, який повинен обробляти обробник сигналу. Це може мати одне з таких значень:
- SIGABRT
- SIGFPE
- СИГІЛ
- ЗНАК
- SIGSEGV
- SIGTERM
- обробник: обробник сигналу, який обробляє сигнал. Це може бути одне з наступного:
- 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; )
Коли ви запускаєте програму, результат буде:
Сигнал обробляється