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

Функція 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; )

Коли ви запускаєте програму, результат буде:

 Сигнал обробляється

Цікаві статті...