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





ИМЯ


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





ИМЯ


signal - работа с сигналами ANSI C



ОБЗОР


#include <signal.h>

typedef void (*sighandler_t)(int);

sighandler_t signal(int signum, sighandler_t handler);



ОПИСАНИЕ


Работа вызова signal() различается в различных версиях UNIX, и такая же ситуация исторически
сложилась и в различных версиях Linux. Не используйте его: используйте вместо него
sigaction(2). Смотрите абзац Переносимость далее.

Вызов signal() устанавливает обработчик сигнала с номером signum в соответствии с параметром
handler, который может быть равен SIG_IGN, SIG_DFL или адресу функции пользователя
("обработчик сигнала").

Если сигнал signum доставляется процессу, то происходит следующее:

* Если значение обработчика равно SIG_IGN, то сигнал игнорируется.

* Если значение обработчика равно SIG_DFL, то ... Читать дальше »

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





ИМЯ


sigaltstack - считывает или устанавливает расположение стека сигналов



ОБЗОР


#include <signal.h>

int sigaltstack(const stack_t *ss, stack_t *old_ss);

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

sigaltstack():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
|| /* в версии glibc <= 2.19: */ _BSD_SOURCE



ОПИСАНИЕ


Вызов sigaltstack() позволяет процессу определить новый альтернативный стек сигналов и/или
получить состояние уже имеющегося альтернативного стека сигналов. Альтернативный стек
сигналов используется при выполнении обработчика сигналов, если он был запрошен при
установлении обработчика (см. sigaction(2)).

Обычный порядок действий для использования альтернативного стека сигналов:< ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 467 | Добавил: Администратор | Дата: 24.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) Системные вызовы ядра (функции языка Си) | Просмотров: 546 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


shutdown - закрывает часть полнодуплексного соединения



ОБЗОР


#include <sys/socket.h>

int shutdown(int sockfd, int how);



ОПИСАНИЕ


Вызов shutdown() приводит к закрытию всего полнодуплексного соединения или его части в
сокете, связанном с sockfd. Если значение how равно SHUT_RD, то дальнейший приём данных
будет запрещён. Если значение how равно SHUT_WR, то дальнейшая передача данных будет
запрещена. Если значение how равно SHUT_RDWR, то дальнейший приём и передача данных будут
запрещены.



ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ


При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno
устанавливается в соответствующее значение.



ОШИБКИ


EBADF Значение sockfd не является правильным файловым дескриптором.

EINVAL Указано неве ... Читать дальше »

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





ИМЯ


shmat, shmdt - операции с общей памятью System V



ОБЗОР


#include <sys/types.h>
#include <sys/shm.h>

void *shmat(int shmid, const void *shmaddr, int shmflg);

int shmdt(const void *shmaddr);



ОПИСАНИЕ


shmat()
Вызов shmat() подключает сегмент общей памяти System V с идентификатором shmid к адресному
пространству вызывающего процесса. Адрес подключения, указанный в shmaddr, учитывается
следующим образом:

* Если значение shmaddr равно NULL, то система выбирает подходящий (неиспользуемый)
выровненный по странице адрес для подключения сегмента.

* Если значение shmaddr не равно NULL, а в shmflg указан флаг SHM_RND, то подключение
производится по адресу shmaddr, округлённому до ближайшего значения кратного SHMLBA.

* В противном случае shmaddr должно быть выровнено по ... Читать дальше »

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





ИМЯ


shmget - выделяет общий сегмент памяти System V



ОБЗОР


#include <sys/ipc.h>
#include <sys/shm.h>

int shmget(key_t key, size_t size, int shmflg);



ОПИСАНИЕ


Вызов shmget() возвращает идентификатор общего сегмента памяти System V, соответствующего
значению аргумента key. Если значение key равно IPC_PRIVATE или если key не равно
IPC_PRIVATE, но не существует общего сегмента памяти, который бы соответствовал значению key
и в shmflg есть флаг IPC_CREAT, то создаётся новый общий сегмент памяти размером size,
округлённым до значения, кратного PAGE_SIZE.

Если в shmflg одновременно указаны IPC_CREAT и IPC_EXCL и для значения key уже существует
общий сегмент памяти, то вызов shmget() завершается с ошибкой и errno присваивается EEXIST
(такой же результат как с O_CREAT | O_EXCL у open(2)< ... Читать дальше »

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

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