FreeSource : Статьи/КраткоОбоВсём/Clang/part2/part18

2.18 Сигналы.

kill (POSIX) <sys/types.h, signal.h>
int kill(pid_t pid, int sig);
Системный вызов kill используется для того, чтобы послать сигнал процессу или группе процессов. Если:

pause (SVr4, SVID, POSIX, X/OPEN, BSD 4.3) <unistd.h>
int pause(void);
Ожидание сигнала.

raise (ANSI) <signal.h>
int raise(int sig);
Посылает сигнал <sig> текущему процессу.

sigaction (POSIX) <signal.h>
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
Используется для изменения действий процесса при получении соответствующего сигнала <signum>.

signal (ANSI) <signal.h>
void (*signal(int signum, void (*sighandler)(int)))(int);
Устанавливает функцию <sighandler> обработки сигнала <signum>. Таблица 15.

sigpending (POSIX) <signal.h>
int sigpending(sigset_t *set);
Определяет наличие ожидающих сигналов.

sigprocmask (POSIX) <signal.h>
int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
Изменяет список блокированных в данный момент сигналов.

sigsuspend (POSIX) <signal.h>
int sigsuspend(const sigset_t *mask);
Временно изменяет значение маски блокировки сигналов процесса на указанное в mask, и затем приостанавливает работу процесса до получения соответствующего сигнала.

sigwait (POSIX) <signal.h, pthread.h>
int sigwait(const sigset_t *set, int *sig);
Блокирует поток до генерации сигналов указанных в <set>. Номер сгенерированного сигнала помещается в <sig>.

Таблица 15. Стандартные сигналы
СигналНазначение
SIGHUPОсвобождение линии.
SIGINTПрерывание процесса.
SIGQUITВыход.
SIGILLНедостоверная инструкция.
SIGTRAPТрассировочное прерывание.
SIGIOTМашинная команда IOT.
SIGABRTАварийное прерывание.
SIGEMPTМашинная команда EMT.
SIGFPEИсключение floatpoint.
SIGKILLУничтожение процесса (KILL).
SIGBUSОшибка шины (bus error).
SIGSYSОшибка сегментации памяти.
SIGPIPEЗапись в канал, из которого некому читать.
SIGALRMБудильник (alarm clock).
SIGPROFСрабатывание профилирующего таймера. Устанавливается: setitimer(ITIMER_PROF, ..)
SIGVTALRMСрабатывание виртуального таймера. Устанавл.: setitimer(ITIMER_VIRTUAL, ..)
SIGTERMПрограммный сигнал завершения.
SIGUSR1Пользовательский сигнал 1.
SIGUSR2Пользовательский сигнал 2.
SIGCHLDЗавершение порожденного процесса.
SIGPWRОшибка питания (power fail).
SIGWINDИзменение окна.
SIGPHONEИзменение строки состояния.
SIGPOLLВозникновение опрашиваемого события.
_NSIGМаксимальный сигнал.
SIGCONTПродолжения работы остановленого процесса.
SIGSTOPСигнал останова.
SIGTSTRТерминальный сигнал остановки (Ctrl Z).
SIGTTINПопытка ввода с терминала фоновым процессом.
SIGTTOUTПопытка вывода на терминал фоновым процессом.
SIGURGПоступление в буфер сокета срочных данных.
SIGXCPUПревышение лимита процессорного времени.
SIGXFSZПревышение лимита на размер файла.