Главная » (2) Системные вызовы ядра (функции языка Си)





ИМЯ


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() удаляет сигнал из списка сигналов ожидающих обработки и возвращает номер
... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 414 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


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().

Сигнал ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 417 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


sigreturn, rt_sigreturn - выполняет возврат из обработчика сигнала и очищает кадр стека



ОБЗОР


int sigreturn(...);



ОПИСАНИЕ


Если ядро Linux обнаруживает, что неблокированный сигнал ожидает обработки процессом, то при
следующем переключении в пользовательский режим в этом процессе (например, при возврате из
системного вызова или когда процесс перепланируется на ЦП), оно создаёт новый кадр в стеке
пользовательского пространства, где сохраняет различные части контекста процесса (состояние
слова процессора, регистры, маску сигналов и настройки стека сигналов).

Также ядро делает так, что при переходе в пользовательский режим вызывается обработчик
сигналов и при возврате из обработчика управление передаётся части кода пользовательского
пространства, называемого «сигнальным батутом»(signal trampoline). Код с ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 404 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


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;
... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 410 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


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() используется для выборки и/или изменения маски сигналов вызывающей нити.
Маска сигналов представляет собой набор сигналов, чья доставка в настоя ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 396 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


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 ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 457 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


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). Обычно, набор сигналов, принимаемых через
файловый дескриптор, должен блокироваться с п ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 435 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)

« 1 2 3 4 5 6 ... 59 60 »