Ожидание сигнала
#include <signal.h>int sigpause( int sig );
libc
Функция sigpause() присваивает sig маске замаскированных сигналов, а затем ожидает прихода сигнала; по возвращении из функции набор маскированных сигналов восстанавливается. Аргумент sig обычно равен 0, чтобы указать, что все сигналы должны быть разблокированы. Эта функция всегда завершается прерыванием выполнения с возвратом -1 и установкой errno в EINTR.
При обычном использовании сигнал блокируется при помощи sigblock(). Чтобы начать критическую секцию, переменные, измененные при появлении сигнала, проверяются, чтобы определить, что нет никакой работы, которую нужно выполнить, и процесс приостанавливается в ожидании работы при помощи sigpause() с маской, возвращаемой sigblock() .
Невозможно заблокировать SIGKILL, SIGSTOP и SIGCONT – это системное ограничение.
-1; errno устанавливается в значение EINTR.
POSIX 1003.1 X/Open Systems Interfaces Extension
Использование этих интерфейсов с системными библиотеками или в многопоточных приложениях не поддерживается.
kill(), sigaction(), sigblock(), sigmask(), signal(), sigsetmask(), sigsuspend(), sigunblock()
Предыдущий раздел: Описание API системной библиотеки