OpenSCADAWiki:
Roman Savochenko
/
C Short All
/
part2
/part18
...
Home
|
Index
|
Changes
|
Comments
|
Users
|
Registration
|
Login
:
Password:
====2.18 Сигналы.==== **kill (POSIX) <sys/types.h, signal.h>** //int kill(pid_t pid, int sig);// Системный вызов kill используется для того, чтобы послать сигнал процессу или группе процессов. Если: * pid > 0 - сигнал sig посылается процессу pid. * pid = 0 - сигнал sig посылается всем процессам текущей группы. * pid = -1 - сигнал sig посылается всем процессам текущей группы, кроме первого. **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|Превышение лимита на размер файла.|| |#
Please type the word you read in the image: