ИМЯ sigwaitinfo, sigtimedwait, rt_sigtimedwait - синхронное ожидание запрошенных сигналов
ОБЗОР #include <signal.h>
int sigwaitinfo(const sigset_t *set, siginfo_t *info);
int sigtimedwait(const sigset_t *set, siginfo_t *info, const struct timespec *timeout);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
sigwaitinfo(), sigtimedwait(): _POSIX_C_SOURCE >= 199309L
ОПИСАНИЕ sigwaitinfo() приостанавливает исполнение вызывающий нити до тех пор, пока не будет ожидаться один из сигналов из набора set (если один из сигналов в set уже ожидает обработки вызывающей нитью, то sigwaitinfo() завершит работу немедленно с возвратом информации об этом сигнале).
sigwaitinfo() удаляет сигнал из списка сигналов ожидающих обработки и возвращает номер
...
Читать дальше »
|
ИМЯ sigsuspend, rt_sigsuspend - ожидание сигнала
ОБЗОР #include <signal.h>
int sigsuspend(const sigset_t *mask);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
sigsuspend(): _POSIX_C_SOURCE
ОПИСАНИЕ Вызов sigsuspend() временно заменяет маску сигналов вызывающего процесса маской, указанной в mask, и затем приостанавливает процесс до тех пор, пока не поступит сигнал, для которого запустится обработчик сигнала или это приведёт к завершению процесса.
Если по сигналу процесс завершается, то вызов sigsuspend() не возвращает управление обратно в программу. Если сигнал пойман, то возврат из sigsuspend() произойдёт после завершения выполнения обработчика, и маска сигналов восстановится в значение, которое было до вызова sigsuspend().
Сигнал
...
Читать дальше »
|
ИМЯ sigreturn, rt_sigreturn - выполняет возврат из обработчика сигнала и очищает кадр стека
ОБЗОР int sigreturn(...);
ОПИСАНИЕ Если ядро Linux обнаруживает, что неблокированный сигнал ожидает обработки процессом, то при следующем переключении в пользовательский режим в этом процессе (например, при возврате из системного вызова или когда процесс перепланируется на ЦП), оно создаёт новый кадр в стеке пользовательского пространства, где сохраняет различные части контекста процесса (состояние слова процессора, регистры, маску сигналов и настройки стека сигналов).
Также ядро делает так, что при переходе в пользовательский режим вызывается обработчик сигналов и при возврате из обработчика управление передаётся части кода пользовательского пространства, называемого «сигнальным батутом»(signal trampoline). Код с
...
Читать дальше »
|
ИМЯ sigqueue - вставляет сигнал и данные в очередь процесса
ОБЗОР #include <signal.h>
int sigqueue(pid_t pid, int sig, const union sigval value);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
sigqueue(): _POSIX_C_SOURCE >= 199309L
ОПИСАНИЕ Вызов sigqueue() отправляет сигнал, указанный в sig, процессу с идентификатором PID, определённом в pid. Требуются определённые права для отправки сигнала, такие же как для kill(2). Как и в случае с kill(2), пустой сигнал (0) может использоваться для проверки того, что заданный PID вообще существует.
Аргумент value используется для указания сопутствующего элемента данных (либо целого, либо указателя), отправляемых сигналу, и имеет следующий тип:
union sigval { int sival_int;
...
Читать дальше »
|
ИМЯ sigprocmask, rt_sigprocmask - проверка и изменение блокировки сигналов
ОБЗОР #include <signal.h>
/* Прототип обёрточной функции glibc */ int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);
/* Прототип используемого системного вызова */ int rt_sigprocmask(int how, const kernel_sigset_t *set, kernel_sigset_t *oldset, size_t sigsetsize);
/* Прототип устаревшего системного вызова */ int sigprocmask(int how, const old_kernel_sigset_t *set, old_kernel_sigset_t *oldset);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
sigprocmask(): _POSIX_C_SOURCE
ОПИСАНИЕ Вызов sigprocmask() используется для выборки и/или изменения маски сигналов вызывающей нити. Маска сигналов представляет собой набор сигналов, чья доставка в настоя
...
Читать дальше »
|
ИМЯ sigpending, rt_sigpending - проверка ожидающих сигналов
ОБЗОР #include <signal.h>
int sigpending(sigset_t *set);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
sigpending(): _POSIX_C_SOURCE
ОПИСАНИЕ Вызов sigpending() возвращает набор сигналов, которые ожидают доставки в вызвавшую нить (т.е., сигналы, возникшие пока были заблокированы). Маска ожидающих сигналов возвращается в set.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении функция sigpending() возвращает 0 и -1 при ошибке. В случае ошибки в errno указывается номер ошибки.
ОШИБКИ EFAULT Аргумент set указывает на память в недопустимой части адресуемого пространства.
СООТВЕТСТВИЕ СТАНДАРТАМ POSIX.1
...
Читать дальше »
|
ИМЯ signalfd - создаёт файловый дескриптор для приёма сигналов
ОБЗОР #include <sys/signalfd.h>
int signalfd(int fd, const sigset_t *mask, int flags);
ОПИСАНИЕ Вызов signalfd() создаёт файловый дескриптор, который можно использовать для приёма сигналов, предназначенных вызывающему. Его можно использовать как замену обработчику сигналов или sigwaitinfo(2); преимущество в том, что за файловым дескриптором можно следить с помощью select(2), poll(2) и epoll(7).
В аргументе mask указывается набор сигналов, который вызывающий хочет принимать через файловый дескриптор. Этот аргумент, содержащий набор сигналов, можно инициализировать с помощью макросов, описанных в sigsetops(3). Обычно, набор сигналов, принимаемых через файловый дескриптор, должен блокироваться с п
...
Читать дальше »
| « 1 2 3 4 5 6 ... 59 60 » |