Главная » (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) Системные вызовы ядра (функции языка Си) | Просмотров: 502 | Добавил: Администратор | Дата: 21.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) Системные вызовы ядра (функции языка Си) | Просмотров: 468 | Добавил: Администратор | Дата: 21.11.2017 | Комментарии (0)





ИМЯ


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



ОБЗОР


int sigreturn(...);



ОПИСАНИЕ


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

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

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





ИМЯ


rt_sigqueueinfo, rt_tgsigqueueinfo - ставит сигнал и данные в очередь



ОБЗОР


int rt_sigqueueinfo(pid_t tgid, int sig, siginfo_t *uinfo);

int rt_tgsigqueueinfo(pid_t tgid, pid_t tid, int sig,
siginfo_t *uinfo);

Замечание: В glibc нет обёрточных функций для этих системных вызовов; смотрите
ЗАМЕЧАНИЯ.



ОПИСАНИЕ


Системные вызовы rt_sigqueueinfo() и rt_tgsigqueueinfo() предоставляют
низкоуровневый интерфейс для отправки сигнала с данными процессу или нити.
Приёмник сигнала может получить сопутствующие данные, установив обработчик сигнала
с помощью sigaction(2) с флагом SA_SIGINFO.

Данные системные вызовы не предназначены для использования непосредственно из
приложения; они нужны для реализации библиотечных функций sigqueue(3) и
pthread_sigqueue(3).

Системный ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 458 | Добавил: Администратор | Дата: 21.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) Системные вызовы ядра (функции языка Си) | Просмотров: 531 | Добавил: Администратор | Дата: 21.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 указывает на память в недопустимой части адресуемого
пространства.



СООТВЕТСТВИЕ СТАНДАРТАМ


POS ... Читать дальше »

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





ИМЯ


sigaction, rt_sigaction - получает и изменяет обработчик сигнала



ОБЗОР


#include <signal.h>

int sigaction(int signum, const struct sigaction *act,
struct sigaction *oldact);

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):

sigaction(): _POSIX_C_SOURCE

siginfo_t: _POSIX_C_SOURCE >= 199309L



ОПИСАНИЕ


Системный вызов sigaction() используется для изменения выполняемого процессом
действия при получении определённого сигнала (список сигналов смотрите в
signal(7)).

В signum указывается сигнал; может принимать значение любого корректного сигнала
за исключением SIGKILL и SIGSTOP.

Если значение act не равно NULL, то устанавливается новое действие для сигнала
signum из act. Если значение oldact не равно NULL, то предыдущее д ... Читать дальше »

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

« 1 2 ... 14 15 16 17 18 ... 59 60 »