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

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

signal () Прототип

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

На signalфункцията дефинира метод за обработка на сигнала. Обработващият сигнал може да бъде настроен така, че да се изпълни едно от следните действия:

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

Определя се в заглавния файл "> заглавния файл.

сигнал () Параметри

  • sig: Сигналът, който трябва да се обработва от манипулатора на сигнала. Може да приеме една от следните стойности:
    • SIGABRT
    • SIGFPE
    • SIGILL
    • ЗНАЧЕНИЕ
    • 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; )

Когато стартирате програмата, изходът ще бъде:

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

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