Управление на сигналите
sigemptyset()
инициализира празно множество от сигнали, като всички сигнали са изключени от множеството.
sigfillset()
инициализира пълно множество от сигнали, включващо всичките сигнали.
sigaddset()
добавя сигнал към множество.
sigdelset()
премахва сигнал от множество.
sigprocmask()
извлича и/или променя сигналната маска на извикващата нишка.
sigaction()
променя действието на сигнала.
sigwait()
чака сигнал.
strsignal()
връща низ описващ сигнала.
sigemptyset() инициализира наборът от сигнали, зададен от комплекта, като го маркира празен (всички сигнали са изключени от комплекта).
sigaddset() добавя сигнал към комплекта от сигнали, зададен от комплекта, докато sigdelset() премахва знака от набора от сигнали, зададен от комплекта. И двете връщат 0 при успех, или -1 при грешка, в който случай грешката е настроена на код за грешка EINVAL, което означава, че знакът е невалиден идентификатор на сигнала.
Поведението на sigprocmask() зависи от стойността на едно от следните:
SIG_SETMASK
Задава се сигнална маска на извикващия процес.
SIG_BLOCK
Сигналите се добавят към сигналната маска на извикващият процес.
SIG_UNBLOCK
Сигналите се премахват от сигналната маска на извикващия процес.
Структура sigaction:
SA_HANDLER
Адрес на манипулатора SIG_IGN или SIG_DFL
SA_MASK
Сигнали за блокиране
SA_FLAGS
Допълнителни флагове, като SA_RESETHAND
SA_RESETHAND
Позволява режим "еднократно". Поведението на дадения сигнал се връща към стандартното, след като обработващият сигнал се върне.
Извикването на sigaction() променя поведението на сигнала, идентифициран от signo, което може да бъде всяка стойност освен тези, свързани със SIGKILL и SIGSTOP. Ако act не е NULL, системното извикване променя текущото поведение на сигнала, както е посочено в act. Ако oldact не е NULL, системното извикване запазва предишното поведение на даден сигнал (или текущия, ако act е NULL).
Last updated
Was this helpful?