Системный вызов sigprocmask()

Системный вызов sigprocmask() - служит для редактирования списка, блокированных в данный момент сигналов.

сигнатура =

int sigprocmask(int how, const sigset_t *set, sigset_t *oldset); 

пример вызова =

sigset_t newset; // набор сигналов
	sigemptyset(&newset); // инициализирует набор сигналов, указанный в newset, и "очищает" его от всех сигналов
	sigaddset(&newset, SIGHUP); // добавляем сигнал SIGHUP в наш набор
       sigprocmask(SIG_BLOCK, &newset, 0); // добавляем к текущему набору блокированных сигналов сигналы из набора newset

Принцип действия вызова в зависит от переданного параметра how следующим образом -
если how=
SIG_BLOCK - Набор блокируемых сигналов - объединение текущего набора и аргумента set.
SIG_UNBLOCK - Сигналы, устанавливаемое значение битов которых равно set, удаляются из списка блокируемых сигналов. Допускается разблокировать незаблокированные сигналы.
SIG_SETMASK- Набор блокируемых сигналов приравнивается к аргументу set.

Если переданный в вызов параметр oldset не равн нулю, то предыдущее значение маски сигналов записывается в oldset

источник

_____________________________________________
Источники(читать подробнее)=
http://www.opennet.ru/man.shtml?topic=si...
Ключевые слова и фразы(для поиска)=