Функција сигнал () у Ц ++ поставља обрађивач грешака за наведени сигнал.
сигнал () Прототип
воид (* сигнал (инт сиг, воид (* фунц) (инт))) (инт);
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; )
Када покренете програм, излаз ће бити:
Сигналом се рукује