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