Управление на сигналите
метод | описание |
---|---|
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