ИМЯ setxattr, lsetxattr, fsetxattr - устанавливает расширенное значение атрибутов
ОБЗОР #include <sys/types.h> #include <sys/xattr.h>
int setxattr(const char *path, const char *name, const void *value, size_t size, int flags); int lsetxattr(const char *path, const char *name, const void *value, size_t size, int flags); int fsetxattr(int fd, const char *name, const void *value, size_t size, int flags);
ОПИСАНИЕ Расширенные атрибуты представляют собой пару имя:значение и связываются с записями inode (файлы, каталоги, символьные ссылки и т.п.). Они являются расширениями к обычным атрибутам, связанным со всеми записями inode в системе (например, данные stat(2)). Полное описание модели расширенных атрибутов можно найти в xattr(7).
Вызов setxattr() устанавливает зн
...
Читать дальше »
|
ИМЯ lseek - изменяет файловое смещение, используемое при чтении/записи
ОБЗОР #include <sys/types.h> #include <unistd.h>
off_t lseek(int fd, off_t offset, int whence);
ОПИСАНИЕ Функция lseek() изменяет файловое смещение в описании открытого файла, связанного с файловым дескрипторов fd, на значение аргумента offset в соответствии с директивой whence, которая может принимать одно из следующих значений:
SEEK_SET Установить файловое смещение равным offset (в байтах).
SEEK_CUR Установить файловое смещение равным текущему положению плюс offset (в байтах).
SEEK_END Установить файловое смещение равным размеру файла плюс offset (в байтах).
Функция lseek() позволяет задавать смещение, которое будет находиться за существующим концом файла (но это не изменяет размер
...
Читать дальше »
|
ИМЯ removexattr, lremovexattr, fremovexattr - удаление расширенных атрибутов
ОБЗОР #include <sys/types.h> #include <sys/xattr.h>
int removexattr(const char *path, const char *name); int lremovexattr(const char *path, const char *name); int fremovexattr(int fd, const char *name);
ОПИСАНИЕ Расширенные атрибуты представляют собой пару имя:значение и связываются с записями inode (файлы, каталоги, символьные ссылки и т.п.). Они являются расширениями к обычным атрибутам, связанным со всеми записями inode в системе (например, данные stat(2)). Полное описание модели расширенных атрибутов можно найти в xattr(7).
Вызов removexattr() удаляет расширенный атрибут с именем, заданным в name и связанный с заданным path в файловой системе.
Вызов lremovexattr() идентичен remov
...
Читать дальше »
|
ИМЯ lookup_dcookie - возвращает путь элемента каталога
ОБЗОР int lookup_dcookie(u64 cookie, char *buffer, size_t len);
ОПИСАНИЕ Ищет полный путь элемента каталога, указанного в параметре cookie. Маркёр (cookie) представляет собой простейший идентификатор, уникально определяющий отдельный элемент каталога. Указанный буфер заполняется полным путём элемента каталога.
Для успешного выполнения lookup_dcookie() ядро должно удерживать ссылку маркёра на элемент каталога.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении lookup_dcookie() возвращается длина строки пути, скопированного в буфер. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
ОШИБКИ EFAULT Неверный буфер.
EINVAL При поиске в ядре не было зареги
...
Читать дальше »
|
ИМЯ afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock, madvise1, mpx, prof, profil, putmsg, putpmsg, security, stty, tuxcall, ulimit, vserver - нереализованные системные вызовы
ОБЗОР Нереализованные системные вызовы.
ОПИСАНИЕ Данные системные вызовы не реализованы в ядре Linux.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ Эти системные вызовы всегда возвращают -1 и устанавливают для errno значение ENOSYS.
ЗАМЕЧАНИЯ Заметим, что ftime(3), profil(3) и ulimit(3) реализованы в виде библиотечных функций.
Некоторые системные вызовы, такие как alloc_hugepages(2), free_hugepages(2), ioperm(2), iopl(2) и vm86(2), существуют только для некоторых архитектур.
Некоторые системны
...
Читать дальше »
|
ИМЯ _llseek - установить позицию чтения/записи в файле
ОБЗОР #include <sys/types.h> #include <unistd.h>
int _llseek(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t *result, unsigned int whence);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Функция _llseek() изменяет смещение в описании открытого файла, связанного с файловым дескриптором fd, в значение (offset_high<<32) | offset_low байт относительно начала файла, текущего смещения файла или конца файла, в зависимости от того, равен ли параметр whence одному из значений SEEK_SET, SEEK_CUR или SEEK_END, соответственно. Функция возвращает получившеюся позицию в файле в аргументе result.
Данный системный вызов существует на разл
...
Читать дальше »
|
ИМЯ _llseek - установить позицию чтения/записи в файле
ОБЗОР #include <sys/types.h> #include <unistd.h>
int _llseek(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t *result, unsigned int whence);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Функция _llseek() изменяет смещение в описании открытого файла, связанного с файловым дескриптором fd, в значение (offset_high<<32) | offset_low байт относительно начала файла, текущего смещения файла или конца файла, в зависимости от того, равен ли параметр whence одному из значений SEEK_SET, SEEK_CUR или SEEK_END, соответственно. Функция возвращает получившеюся позицию в файле в аргументе result.
Данный системный вызов существует на разл
...
Читать дальше »
|
ИМЯ listxattr, llistxattr, flistxattr - выводит список названий расширенных атрибутов
ОБЗОР #include <sys/types.h> #include <sys/xattr.h>
ssize_t listxattr(const char *path, char *list, size_t size); ssize_t llistxattr(const char *path, char *list, size_t size); ssize_t flistxattr(int fd, char *list, size_t size);
ОПИСАНИЕ Расширенные атрибуты представляют собой пару имя:значение и связываются с записями inode (файлы, каталоги, символьные ссылки и т.п.). Они являются расширениями к обычным атрибутам, связанным со всеми записями inode в системе (например, данные stat(2)). Полное описание модели расширенных атрибутов можно найти в xattr(7).
listxattr() получает список названий расширенных атрибутов, связанных с заданным путем path в файловой системе. Список помещается
...
Читать дальше »
|
ИМЯ listxattr, llistxattr, flistxattr - выводит список названий расширенных атрибутов
ОБЗОР #include <sys/types.h> #include <sys/xattr.h>
ssize_t listxattr(const char *path, char *list, size_t size); ssize_t llistxattr(const char *path, char *list, size_t size); ssize_t flistxattr(int fd, char *list, size_t size);
ОПИСАНИЕ Расширенные атрибуты представляют собой пару имя:значение и связываются с записями inode (файлы, каталоги, символьные ссылки и т.п.). Они являются расширениями к обычным атрибутам, связанным со всеми записями inode в системе (например, данные stat(2)). Полное описание модели расширенных атрибутов можно найти в xattr(7).
listxattr() получает список названий расширенных атрибутов, связанных с заданным путем path в файловой системе. Список помещается
...
Читать дальше »
|
ИМЯ listen - слушать соединения на сокете
ОБЗОР #include <sys/types.h> /* смотрите ЗАМЕЧАНИЯ */ #include <sys/socket.h>
int listen(int sockfd, int backlog);
ОПИСАНИЕ Вызов listen() помечает сокет, указанный в sockfd как пассивный, то есть как сокет, который будет использоваться для приёма запросов входящих соединений с помощью accept(2).
Аргумент sockfd является файловым дескриптором, который ссылается на сокет типа SOCK_STREAM или SOCK_SEQPACKET.
Аргумент backlog задает максимальный размер, до которого может расти очередь ожидающих соединений у sockfd. Если приходит запрос на соединение, а очередь полна, то клиент может получить ошибку с указание ECONNREFUSED или, если низлежащий протокол поддерживает повторную передачу, запрос может быть игнорирован, чтобы поп
...
Читать дальше »
|
ИМЯ link, linkat - создаёт новое имя файла
ОБЗОР #include <unistd.h>
int link(const char *oldpath, const char *newpath);
#include <fcntl.h> /* определения констант of AT_* */ #include <unistd.h>
int linkat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath, int flags);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
linkat(): Начиная с glibc 2.10: _POSIX_C_SOURCE >= 200809L До glibc 2.10: _ATFILE_SOURCE
ОПИСАНИЕ link() создаёт новую ссылку (также называемую жёсткую ссылку) на существующий файл.
Если newpath существует, то он не будет перезаписан.
Это новое имя может использоваться как и старое для любых операций; оба имени ссылаются на один файл (и имеют одинаковые права и
...
Читать дальше »
|
ИМЯ link, linkat - создаёт новое имя файла
ОБЗОР #include <unistd.h>
int link(const char *oldpath, const char *newpath);
#include <fcntl.h> /* определения констант of AT_* */ #include <unistd.h>
int linkat(int olddirfd, const char *oldpath, int newdirfd, const char *newpath, int flags);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
linkat(): Начиная с glibc 2.10: _POSIX_C_SOURCE >= 200809L До glibc 2.10: _ATFILE_SOURCE
ОПИСАНИЕ link() создаёт новую ссылку (также называемую жёсткую ссылку) на существующий файл.
Если newpath существует, то он не будет перезаписан.
Это новое имя может использоваться как и старое для любых операций; оба имени ссылаются на один файл (и имеют одинаковые права и
...
Читать дальше »
|
ИМЯ getxattr, lgetxattr, fgetxattr - получить расширенное значение атрибута
ОБЗОР #include <sys/types.h> #include <sys/xattr.h>
ssize_t getxattr(const char *path, const char *name, void *value, size_t size); ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size); ssize_t fgetxattr(int fd, const char *name, void *value, size_t size);
ОПИСАНИЕ Расширенные атрибуты представляют собой пару имя:значение и связываются с записями inode (файлы, каталоги, символьные ссылки и т.п.). Они являются расширениями к обычным атрибутам, связанным со всеми записями inode в системе (например, данные stat(2)). Полное описание модели расширенных атрибутов можно найти в xattr(7).
getxattr() возвращает значение расширенного атрибута с именем name и связанног
...
Читать дальше »
|
ИМЯ chown, fchown, lchown, fchownat - изменяет владельца файла
ОБЗОР #include <unistd.h>
int chown(const char *pathname, uid_t owner, gid_t group); int fchown(int fd, uid_t owner, gid_t group); int lchown(const char *pathname, uid_t owner, gid_t group);
#include <fcntl.h> /* определения констант of AT_* */ #include <unistd.h>
int fchownat(int dirfd, const char *pathname, uid_t owner, gid_t group, int flags);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
fchown(), lchown(): /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 500 || /* версии glibc <= 2.19: */ _BSD_SOURCE fchownat(): Начиная с glibc 2.10: _POSIX_C_SOURCE >= 200809L До glibc 2.10: _ATFILE_SOURCE
|
ИМЯ chown, fchown, lchown, fchownat - изменяет владельца файла
ОБЗОР #include <unistd.h>
int chown(const char *pathname, uid_t owner, gid_t group); int fchown(int fd, uid_t owner, gid_t group); int lchown(const char *pathname, uid_t owner, gid_t group);
#include <fcntl.h> /* определения констант of AT_* */ #include <unistd.h>
int fchownat(int dirfd, const char *pathname, uid_t owner, gid_t group, int flags);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
fchown(), lchown(): /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 500 || /* версии glibc <= 2.19: */ _BSD_SOURCE fchownat(): Начиная с glibc 2.10: _POSIX_C_SOURCE >= 200809L До glibc 2.10: _ATFILE_SOURCE
|
ИМЯ killpg - послать сигнал группе процессов
ОБЗОР #include <signal.h>
int killpg(int pgrp, int sig);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
killpg(): _XOPEN_SOURCE >= 500 || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE || /* версии glibc <= 2.19: */ _BSD_SOURCE
ОПИСАНИЕ killpg() отправляет сигнал sig группе процессов pgrp. Список сигналов можно найти в signal(7).
Если значение pgrp равно 0, то killpg() отправляет сигнал вызывающей группе процессов (в POSIX: если значение pgrp меньше или равно 1, то поведение не определено).
Права, требуемые для отправки сигнала другому процессу, смотрите в kill(2).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении возвращается 0. В случ
...
Читать дальше »
|
ИМЯ kill - послать сигнал процессу
ОБЗОР #include <sys/types.h> #include <signal.h>
int kill(pid_t pid, int sig);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
kill(): _POSIX_C_SOURCE
ОПИСАНИЕ Системный вызов kill() может быть использован для посылки какого-либо сигнала какому-либо процессу или группе процессов.
Если значение pid является положительным, то сигнал sig посылается процессу с идентификатором pid.
Если значение pid равно 0, то sig посылается каждому процессу, который входит в группу вызывающего процесса.
Если значение pid равно -1, то sig посылается каждому процессу, которым вызывающий процесс имеет право отправлять сигналы, за исключением процесса с номером 1 (init), подробности смотрите далее.
...
Читать дальше »
|
ИМЯ keyctl - работа с системой управления ключами ядра
ОБЗОР #include <sys/types.h> #include <keyutils.h>
long keyctl(int operation, ...)
/* для прямого вызова через syscall(2): */ #include <asm/unistd.h> #include <linux/keyctl.h> #include <unistd.h>
long syscall(__NR_keyctl, int operation, __kernel_ulong_t arg2, __kernel_ulong_t arg3, __kernel_ulong_t arg4, __kernel_ulong_t arg5);
В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ keyctl() позволяет программам пользовательского пространства выполнять операции с ключами.
Операция, выполняемая keyctl(), определяется значением аргумента operation. Каждая операция обёрнута библиотекой libkeyutils (из пакета keyutils) в отдельную функцию (
...
Читать дальше »
|
ИМЯ kexec_load, kexec_file_load - загружает новое ядро для выполнения в будущем
ОБЗОР #include <linux/kexec.h>
long kexec_load(unsigned long entry, unsigned long nr_segments, struct kexec_segment *segments, unsigned long flags);
long kexec_file_load(int kernel_fd, int initrd_fd, unsigned long cmdline_len, const char *cmdline, unsigned long flags);
Замечание: В glibc нет обёрточных функций для этих системных вызовов; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов kexec_load() загружает новое ядро, которое можно запустить позже с помощью reboot(2).
Аргумент flags представляет собой битовую маску, которая управляет работой вызова. В flags можно указать следующие значения:
KEXEC_ON_CRASH (начиная с Linux 2.6.13) Запускать новое ядро автоматически после аварии си
...
Читать дальше »
|
ИМЯ kexec_load, kexec_file_load - загружает новое ядро для выполнения в будущем
ОБЗОР #include <linux/kexec.h>
long kexec_load(unsigned long entry, unsigned long nr_segments, struct kexec_segment *segments, unsigned long flags);
long kexec_file_load(int kernel_fd, int initrd_fd, unsigned long cmdline_len, const char *cmdline, unsigned long flags);
Замечание: В glibc нет обёрточных функций для этих системных вызовов; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов kexec_load() загружает новое ядро, которое можно запустить позже с помощью reboot(2).
Аргумент flags представляет собой битовую маску, которая управляет работой вызова. В flags можно указать следующие значения:
KEXEC_ON_CRASH (начиная с Linux 2.6.13) Запускать новое ядро автоматически после аварии си
...
Читать дальше »
|
ИМЯ kcmp - сравнивает два процесса, определяя используют ли они общий ресурс ядра
ОБЗОР #include <linux/kcmp.h>
int kcmp(pid_t pid1, pid_t pid2, int type, unsigned long idx1, unsigned long idx2);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов kcmp() может использоваться для проверки, используют ли два процесса pid1 и pid2 общий ресурс ядра, например виртуальную память, файловые дескрипторы и т.д.
Право вызывать kcmp() определяется проверкой режима доступа ptrace PTRACE_MODE_READ_REALCREDS вместе с pid1 и pid2; смотрите ptrace(2).
В аргументе type указывается какой ресурс двух процессов нужно сравнивать. Допустимы следующие значения:
KCMP_FILE Проверить, что файловый дескриптор idx1 в пр
...
Читать дальше »
|
ИМЯ afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock, madvise1, mpx, prof, profil, putmsg, putpmsg, security, stty, tuxcall, ulimit, vserver - нереализованные системные вызовы
ОБЗОР Нереализованные системные вызовы.
ОПИСАНИЕ Данные системные вызовы не реализованы в ядре Linux.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ Эти системные вызовы всегда возвращают -1 и устанавливают для errno значение ENOSYS.
ЗАМЕЧАНИЯ Заметим, что ftime(3), profil(3) и ulimit(3) реализованы в виде библиотечных функций.
Некоторые системные вызовы, такие как alloc_hugepages(2), free_hugepages(2), ioperm(2), iopl(2) и vm86(2), существуют только для некоторых архитектур.
Некоторые системны
...
Читать дальше »
|
ИМЯ ipc - системные вызовы System V IPC
ОБЗОР int ipc(unsigned int call, int first, int second, int third, void *ptr, long fifth);
ОПИСАНИЕ ipc() является обобщённым системным вызовом для работы с сообщениями, семафорами и разделяемой памятью согласно System V IPC (InterProcess Communication — межпроцессное взаимодействие). В параметре call задаётся какая функция IPC вызывается; значения других аргументов определяется используемой функцией.
Программы пространства пользователя должны вызывать соответствующие функции через их обычные имена. Только тем, кто пишет стандартные библиотеки и хакерам ядра может понадобиться знать о вызове ipc().
СООТВЕТСТВИЕ СТАНДАРТАМ Вызов ipc() есть только в Linux и не должен использоваться в переносимых программах.
...
Читать дальше »
|
ИМЯ io_submit - отправляет асинхронные блоки ввода-вывода для обработки
ОБЗОР #include <linux/aio_abi.h> /* определяет необходимые типы */
int io_submit(aio_context_t ctx_id, long nr, struct iocb **iocbpp);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов io_submit() ставит в очередь nr запросов блоков ввода-вывода для обработки в контексте AIO ctx_id. Значение iocbpp должно быть массивом из nr управляющих блоков AIO, которые будут отправлены в контекст ctx_id.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении io_submit() возвращает количество отправленных iocb (может быть меньше nr или 0, если nr равно нулю). Случаи ошибок описаны в ЗАМЕЧАНИЯХ.
ОШИБКИ EAGAIN Недост
...
Читать дальше »
|
ИМЯ io_setup - создаёт асинхронный контекст ввода-вывода
ОБЗОР #include <linux/aio_abi.h> /* определяет необходимые типы */
int io_setup(unsigned nr_events, aio_context_t *ctx_idp);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов io_setup() создает асинхронный контекст ввода-вывода, способный параллельно обработать nr_events событий. Параметр ctx_idp не должен указывать на уже существующей контекст AIO и должно быть инициализировано 0 перед вызовом. При успешном создании контекста AIO, *ctx_idp заполняется полученным результатом обработки.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ В случае успешного завершения io_setup() возвращает 0. В случае ошибки смотрите ЗАМЕЧАНИЯ.
ОШИБКИ
...
Читать дальше »
|
ИМЯ ioprio_get, ioprio_set - получает/устанавливает класс и приоритет планирования ввода-вывода
ОБЗОР int ioprio_get(int which, int who); int ioprio_set(int which, int who, int ioprio);
Замечание: В glibc нет обёрточных функций для этих системных вызовов; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системные вызовы ioprio_get() и ioprio_set() получают и устанавливают класс и приоритет планирования ввода-вывода одной или более нитей, соответственно.
В аргументах which и who указывается нить(и), над которой выполняются системные вызовы. В аргументе which указывается как будет рассматриваться who; он может иметь одно из следующих значений:
IOPRIO_WHO_PROCESS Значением who является идентификатор процесса или нити, определяющий один процесс или нить. Если who равно 0, то операции выполняются над вызв
...
Читать дальше »
|
ИМЯ
ioprio_get, ioprio_set - получает/устанавливает класс и приоритет планирования
ввода-вывода
ОБЗОР
int ioprio_get(int which, int who);
int ioprio_set(int which, int who, int ioprio);
Замечание: В glibc нет обёрточных функций для этих системных вызовов; смотрите
ЗАМЕЧАНИЯ.
ОПИСАНИЕ
Системные вызовы ioprio_get() и ioprio_set() получают и устанавливают класс и
приоритет планирования ввода-вывода одной или более нитей, соответственно.
В аргументах which и who указывается нить(и), над которой выполняются системные
вызовы. В аргументе which указывается как будет рассматриваться who; он может
иметь одно из следующих значений:
IOPRIO_WHO_PROCESS
...
Читать дальше »
|
ИМЯ iopl - меняет уровень привилегий ввода-вывода
ОБЗОР #include <sys/io.h>
int iopl(int level);
ОПИСАНИЕ iopl() изменяет уровень привилегий ввода/вывода вызывающего процесса, задаваемый двумя младшими битами в значении level.
Этот вызов необходим для того, чтобы 8514-совместимые X-серверы могли работать под управлением Linux. Этим X-серверам необходим доступ ко всем 65536-и портам ввода/вывода, вызова ioperm(2) для этого недостаточно.
В дополнение к неограниченному доступу к портам ввода-вывода работа на высоком уровне привилегий также позволяет процессу отключать прерывания. Скорее всего, это приведет к сбою системы, поэтому использование этой возможности не рекомендуется.
Права не наследуются дочерним процессом, созданным fork(2) и не сохраняются при вызове
...
Читать дальше »
|
ИМЯ ioperm - устанавливает права на работу с портами ввода/вывода
ОБЗОР #include <sys/io.h> /* для glibc */
int ioperm(unsigned long from, unsigned long num, int turn_on);
ОПИСАНИЕ Вызов ioperm() устанавливает num бит прав доступа вызывающей нити, начиная с адреса порта from. Если turn_on не равно 0, то права для указанных битов устанавливаются, иначе сбрасываются. Если turn_on не равно 0, вызывающая нить должна быть привилегированной (CAP_SYS_RAWIO).
До Linux 2.6.8, можно было указывать только первые 0x3ff портов ввода-вывода. Для остальных портов нужно было использовать системный вызов iopl(2) (с аргументом level равным 3). Начиная с Linux 2.6.8, можно указывать 65536 портов ввода-вывода.
Права наследуются дочерним процессом, созданным fork(2) (но смотрите ЗАМЕЧАНИЯ).
...
Читать дальше »
|
ИМЯ io_getevents - считывает асинхронные события ввода/вывода из очереди выполнения
ОБЗОР #include <linux/aio_abi.h> /* определяет необходимые типы */ #include <linux/time.h> /* определяет «struct timespec» */
int io_getevents(aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct timespec *timeout);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов io_getevents() пытается считать, по меньшей мере, от min_nr до nr событий из очереди выполнения контекста AIO, указанном в ctx_id.
В аргументе timeout задаётся время (относительное значение) ожидания событий в виде структуры:
struct timespec { time_t tv_sec; /* секунды */ long tv_nsec; /* наносекунды [0 .. 999999999] */ };
...
Читать дальше »
|
ИМЯ io_destroy - уничтожает асинхронный контекст ввода-вывода
ОБЗОР #include <linux/aio_abi.h> /* определяет необходимые типы */
int io_destroy(aio_context_t ctx_id);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов io_destroy() пытается отменить все невыполненные асинхронные операции ввода-вывода, относящиеся к ctx_id, заблокировать выполнение выполнение всех операций, которые нельзя отменить, и уничтожить ctx_id.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ В случае успешного завершения io_destroy() возвращает 0. В случае ошибки смотрите ЗАМЕЧАНИЯ.
ОШИБКИ EFAULT Указанный контекст некорректен.
EINVAL Некорректен контекст AIO, указанный ctx_id.
ENOSYS io_destroy() не
...
Читать дальше »
|
ИМЯ ioctl_userfaultfd - создаёт файловый дескриптор для обработки страничных ошибок в пользовательском пространстве
ОБЗОР #include <sys/ioctl.h>
int ioctl(int fd, int cmd, ...);
ОПИСАНИЕ Над объектом userfaultfd (созданным вызовом userfaultfd(2)) можно выполнять различные операции ioctl(2) используя вызовы вида:
ioctl(fd, cmd, argp); Здесь fd — файловый дескриптор, ссылающийся на объект userfaultfd, cmd — одна из команд, перечисленных ниже, а argp — указатель на структуру данных, используемую командой cmd.
Операции ioctl(2) описаны ниже. Операции UFFDIO_API, UFFDIO_REGISTER и UFFDIO_UNREGISTER для настройки поведения userfaultfd. Эти операции позволяют вызывающему выбрать какие свойства нужно включить и какие типы событий будут доставляться приложению. О
...
Читать дальше »
|
ИМЯ ioctl_tty - вызовы ioctl для терминалов и последовательных портов
ОБЗОР #include <termios.h>
int ioctl(int fd, int cmd, ...);
ОПИСАНИЕ Вызов ioctl(2) для терминалов и последовательных портов принимает много разных параметров команд. Большинство из них требуют при этом третий аргумент разных типов, далее по тексту называемый argp или arg.
Вызовы ioctl используются только в непереносимых программах. По возможности старайтесь везде использовать интерфейс POSIX, описанный в termios(3).
Определение и установка атрибутов терминала TCGETS struct termios *argp Эквивалентно tcgetattr(fd, argp). Получить текущие настройки последовательного порта.
TCSETS const struct termios *argp Эквивалентно tcsetattr(fd, TCSANOW, argp). Установить новые текущие настройки по
...
Читать дальше »
|
ИМЯ ioctl_ns - операции ioctl() для пространств имён Linux
ОПИСАНИЕ Определение отношений между пространствами имён Следующие операции ioctl(2) позволяют определить порядок отношений между пространствами имён (смотрите user_namespaces(7) и pid_namespaces(7)). Форма вызовов:
new_fd = ioctl(fd, request);
Здесь в каждом случае fd ссылается на файл /proc/[pid]/ns/*. При успешном выполнении обе операции возвращают новый файловый дескриптор.
NS_GET_USERNS (начиная с Linux 4.9) Возвращает файловый дескриптор, ссылающийся на пространство имён пользователя, которое владеет пространством имён, на которое ссылается fd.
NS_GET_PARENT (начиная с Linux 4.9) Возвращает файловый дескриптор, который ссылается на родительское пространство имён для пространства имён, на которое ссылается fd. Эта опера
...
Читать дальше »
|
ИМЯ ioctl_list - список вызовов ioctl ядра Linux/i386
ОПИСАНИЕ В данной странице представлен список ioctl вызовов ядра Linux/i386 версии 1.3.27. Он содержит 421 вызов из </usr/include/{asm,linux}/*.h>.Для каждого вызова указано числовое значение, имя и передаваемые аргументы.
Тип аргумента const struct foo * означает, что аргумент для ядра является входным. struct foo * означает, что аргумент для ядра является выходным. Если ядро использует аргумент как входной и выходной, то он помечается как // I-O.
Некоторые ioctl вызовы используют больше аргументов или возвращают больше значений, чем одна структура. Такие вызовы отмечаются как // MORE и документируются далее в отдельном параграфе.
Данный список очень неполон.
Структура ioctl Значения команд ioctl являются 32-битными константами. В принципе, эти конста
...
Читать дальше »
|
ИМЯ ioctl_iflags - операции ioctl() для флагов иноды
ОПИСАНИЕ Различные файловые системы Linux поддерживают флаги иноды — атрибуты, которые изменяют смысл файлов и каталогов. Эти флаги можно запросить и изменить с помощью двух операций ioctl(2):
int attr; fd = open("pathname", ...);
ioctl(fd, FS_IOC_GETFLAGS, &attr); /* помещает текущие флаги в 'attr' */ attr |= FS_NOATIME_FL; /* изменяет полученную битовую маску */ ioctl(fd, FS_IOC_SETFLAGS, &attr); /* обновляет флаги иноды, на которую указывает 'fd' */
Команды оболочки lsattr(1) и chattr(1) предоставляют интерфейс к этим двум операциям, позволяя пользователю просматривать и изменять флаги иноды, связанной с файлом.
Поддерживаются следующие флаги (показаны вместе с соответствующей буквой, которой обозначается флаг в
...
Читать дальше »
|
ИМЯ ioctl_getfsmap - возвращает физическую планировку файловой системы
ОБЗОР #include <sys/ioctl.h> #include <linux/fs.h> #include <linux/fsmap.h>
int ioctl(int fd, FS_IOC_GETFSMAP, struct fsmap_head * arg);
ОПИСАНИЕ Операция ioctl(2) возвращает отображение физических зон для файловой системы. Эта информация может использоваться для понимания какие файлы отображены на физический блок, обследования свободного пространства, поиска известных плохих блоков и для других вещей.
Основным аргументом данной операции является указатель на единственную структуру struct fsmap_head:
struct fsmap { __u32 fmr_device; /* идентификатор устройства */ __u32 fmr_flags; /* флаги отображения */ __u64 fmr_physical; /* смещение сегмента на устройстве */ __u64 fmr_owner; /
...
Читать дальше »
|
ИМЯ ioctl_ficlonerange - сделать некоторые данные одного файла общими с другим файлом
ОБЗОР #include <sys/ioctl.h> #include <linux/fs.h>
int ioctl(int src_fd, FIDEDUPERANGE, struct file_dedupe_range *arg);
ОПИСАНИЕ Если файловая система поддерживает общее файловое физическое хранилище между несколькими файлами, то эту операцию ioctl(2) можно использовать для того, чтобы часть данных файла src_fd появилась в файле dest_fd в виде общего пространства на носителе, если данные файлов одинаковы («дедупликация», deduplication). Оба файла должны располагаться в одной файловой системе. Это сокращает затраты на место, позволяя хранить в файловой системе только одну копию данных.Если выполняется запись в эту общую область, то файловая система должна гарантировать, что изменения будут видн
...
Читать дальше »
|
ИМЯ ioctl_ficlonerange, ioctl_ficlone - сделать некоторые данные одного файла общими с другим файлом
ОБЗОР #include <sys/ioctl.h> #include <linux/fs.h>
int ioctl(int dest_fd, FICLONERANGE, struct file_clone_range *arg); int ioctl(int dest_fd, FICLONE, int src_fd);
ОПИСАНИЕ Если файловая система поддерживает общее файловое физическое хранилище для файлов («reflink»), то эту операцию ioctl(2) можно использовать для того, чтобы часть данных файла src_fd появилась в файле dest_fd в виде общего пространства на носителе, что быстрее по сравнению с созданием отдельной физической копии данных. Оба файла должны располагаться в одной файловой системе. Если выполняется запись в эту общую область, то файловая система должна гарантировать, что изменения будут видны только в файле, в кот
...
Читать дальше »
|
ИМЯ ioctl_ficlonerange, ioctl_ficlone - сделать некоторые данные одного файла общими с другим файлом
ОБЗОР #include <sys/ioctl.h> #include <linux/fs.h>
int ioctl(int dest_fd, FICLONERANGE, struct file_clone_range *arg); int ioctl(int dest_fd, FICLONE, int src_fd);
ОПИСАНИЕ Если файловая система поддерживает общее файловое физическое хранилище для файлов («reflink»), то эту операцию ioctl(2) можно использовать для того, чтобы часть данных файла src_fd появилась в файле dest_fd в виде общего пространства на носителе, что быстрее по сравнению с созданием отдельной физической копии данных. Оба файла должны располагаться в одной файловой системе. Если выполняется запись в эту общую область, то файловая система должна гарантировать, что изменения будут видны только в файле, в кот
...
Читать дальше »
|
ИМЯ ioctl_fat - управление файловой системой FAT
ОБЗОР #include <linux/msdos_fs.h> #include <sys/ioctl.h>
int ioctl(int fd, FAT_IOCTL_GET_ATTRIBUTES, uint32_t *attr); int ioctl(int fd, FAT_IOCTL_SET_ATTRIBUTES, uint32_t *attr); int ioctl(int fd, FAT_IOCTL_GET_VOLUME_ID, uint32_t *id); int ioctl(int fd, VFAT_IOCTL_READDIR_BOTH, struct __fat_dirent[2] entry); int ioctl(int fd, VFAT_IOCTL_READDIR_SHORT, struct __fat_dirent[2] entry);
ОПИСАНИЕ Системный вызов ioctl(2) можно использовать для чтения и записи метаданных файловых систем FAT, которые недоступны через другие системные вызовы.
Чтение и установка файловых атрибутов У файлов и каталогов и в файловой системе FAT есть битовая маска атрибутов, которую можно прочитать с помощью FAT_IOCTL_GET_ATTRIBUTES и записат
...
Читать дальше »
|
ИМЯ ioctl_console - управление вводом-выводом (ioctl) консольного терминала и виртуальных консолей
ОПИСАНИЕ Для терминалов и виртуальных консолей поддерживаются Linux-ориентированные запросы ioctl(2), перечисленные далее. Для каждого запроса требуется третий аргумент argp.
KDGETLED Получить состояние индикаторов. argp указывает ячейку типа char. В младших трёх битах *argp хранится состояние индикаторов:
LED_CAP 0x04 индикатор caps lock LED_NUM 0x02 индикатор num lock LED_SCR 0x01 индикатор scroll lock
KDSETLED Установить состояние индикаторов. Состояние индикаторов устанавливается в соответствии с тремя младшими битами беззнакового длинного целого argp. Однако, если установлен старший бит, индикаторы возвращаются в исходное состояние: отображают состояние функций клавиатуры caps lock, num lock и
...
Читать дальше »
|
ИМЯ ioctl - управляет устройством
ОБЗОР #include <sys/ioctl.h>
int ioctl(int fd, unsigned long request, ...);
ОПИСАНИЕ Функция ioctl() изменяет базовые параметры устройства, представленного в виде специального файла. В частности, через запросы ioctl() можно управлять многими оперативными характеристиками специальных символьных файлов (например, терминалов). В качестве аргумента fd должен быть указан открытый файловый дескриптор.
Второй аргумент является кодом запроса, значение которого зависит от устройства. Третий аргумент является нетипизированным указателем на память. Обычно, это char *argp (было до тех пор, пока в C не появился vvoid *) и далее он будет называться именно так.
В значении request функции ioctl() кодируется информация является ли параметр входным или выходн
...
Читать дальше »
|
ИМЯ io_cancel - отменяет невыполненную асинхронную операцию ввода-вывода
ОБЗОР #include <linux/aio_abi.h> /* определяет необходимые типы */
int io_cancel(aio_context_t ctx_id, struct iocb *iocb, struct io_event *result);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Системный вызов io_cancel() пытается отменить асинхронную операцию ввода-вывода, ранее отправленную системным вызовом io_submit(2). В В параметре iocb указывается отменяемая операция, а в параметре ctx_id задаётся идентификатор контекста AIO отправленной операции. Если операция успешно отменена, то событие будет скопировано в память, куда указывает result, без помещения в очередь выполнения.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ В случае успешного
...
Читать дальше »
|
ИМЯ outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт
ОБЗОР #include <sys/io.h>
unsigned char inb(unsigned short int port); unsigned char inb_p(unsigned short int port); unsigned short int inw(unsigned short int port); unsigned short int inw_p(unsigned short int port); unsigned int inl(unsigned short int port); unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port); void outb_p(unsigned char value, unsigned short int port); void outw(unsigned short int value, unsigned short int port); void outw_p(unsigned short int value, unsigned short int port); void outl(unsigned int value, unsigned short int port); void outl_p(unsigned int value, unsigned short int port);
void ins
...
Читать дальше »
|
ИМЯ outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт
ОБЗОР #include <sys/io.h>
unsigned char inb(unsigned short int port); unsigned char inb_p(unsigned short int port); unsigned short int inw(unsigned short int port); unsigned short int inw_p(unsigned short int port); unsigned int inl(unsigned short int port); unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port); void outb_p(unsigned char value, unsigned short int port); void outw(unsigned short int value, unsigned short int port); void outw_p(unsigned short int value, unsigned short int port); void outl(unsigned int value, unsigned short int port); void outl_p(unsigned int value, unsigned short int port);
void ins
...
Читать дальше »
|
ИМЯ intro - введение в системные вызовы
ОПИСАНИЕ В разделе 2 описываются системные вызовы Linux. Системный вызов — это точка входа в ядро Linux. Обычно, системные вызовы не запускаются напрямую, вместо этого почти все системные вызовы имеют соответствующие обёрточные функции в библиотеке C, которая выполняет некоторые действия (например, подготовку к работе в режиме ядра) для запуска системного вызова. Таким образом, работа с системным вызовом выглядит также как вызов обычной библиотечной функции.
Во многих случаях обёрточная функция библиотеки C делает не более чем:
* копирует аргументы и уникальный номер системного вызова в регистры, где ядро ожидает их найти, и затем;
* передаёт управление в режим ядра в место, где ядро выполняет всю работу системным вызовом;
* изменяет errno, если системный вызов вернул ном
...
Читать дальше »
|
ИМЯ outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт
ОБЗОР #include <sys/io.h>
unsigned char inb(unsigned short int port); unsigned char inb_p(unsigned short int port); unsigned short int inw(unsigned short int port); unsigned short int inw_p(unsigned short int port); unsigned int inl(unsigned short int port); unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port); void outb_p(unsigned char value, unsigned short int port); void outw(unsigned short int value, unsigned short int port); void outw_p(unsigned short int value, unsigned short int port); void outl(unsigned int value, unsigned short int port); void outl_p(unsigned int value, unsigned short int port);
void ins
...
Читать дальше »
|
ИМЯ outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт
ОБЗОР #include <sys/io.h>
unsigned char inb(unsigned short int port); unsigned char inb_p(unsigned short int port); unsigned short int inw(unsigned short int port); unsigned short int inw_p(unsigned short int port); unsigned int inl(unsigned short int port); unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port); void outb_p(unsigned char value, unsigned short int port); void outw(unsigned short int value, unsigned short int port); void outw_p(unsigned short int value, unsigned short int port); void outl(unsigned int value, unsigned short int port); void outl_p(unsigned int value, unsigned short int port);
void ins
...
Читать дальше »
|
ИМЯ outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт
ОБЗОР #include <sys/io.h>
unsigned char inb(unsigned short int port); unsigned char inb_p(unsigned short int port); unsigned short int inw(unsigned short int port); unsigned short int inw_p(unsigned short int port); unsigned int inl(unsigned short int port); unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port); void outb_p(unsigned char value, unsigned short int port); void outw(unsigned short int value, unsigned short int port); void outw_p(unsigned short int value, unsigned short int port); void outl(unsigned int value, unsigned short int port); void outl_p(unsigned int value, unsigned short int port);
void ins
...
Читать дальше »
|
ИМЯ inotify_rm_watch - удаляет существующий сторожок из экземпляра inotify
ОБЗОР #include <sys/inotify.h>
int inotify_rm_watch(int fd, int wd);
ОПИСАНИЕ Вызов inotify_rm_watch() удаляет сторожок (watch), связанный с дескриптором сторожка wd из экземпляра inotify, связанного с файловым дескриптором fd.
Удаление сторожка приводит к созданию события IN_IGNORED для этого дескриптора сторожка (см. inotify(7)).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении inotify_rm_watch() возвращается ноль. При ошибке возвращается -1, а в errno содержится код ошибки.
ОШИБКИ EBADF Значение fd не является правильным файловым дескриптором.
EINVAL Неправильный дескриптор сторожка wd; или fd не является файловым дескриптором inotify.
...
Читать дальше »
|
ИМЯ inotify_init, inotify_init1 - инициализирует экземпляр inotify
ОБЗОР #include <sys/inotify.h>
int inotify_init(void); int inotify_init1(int flags);
ОПИСАНИЕ Обзор программного интерфейса inotify смотрите в inotify(7).
inotify_init() инициализирует новый экземпляр inotify и возвращает файловый дескриптор, связанный с очередью событий нового inotify.
Если flags равен 0, то inotify_init1() выполняет тоже, что и inotify_init(). Чтобы получить другое поведение, следующие значения могут быть сложены с помощью побитового ИЛИ в flags:
IN_NONBLOCK Устанавливает флаг состояния файла O_NONBLOCK для нового открытого файлового дескриптора. Использование данного флага заменяет дополнительные вызовы fcntl(2) для достижения того же результата.
IN_CLOEXEC Устанавлив
...
Читать дальше »
|
ИМЯ inotify_init, inotify_init1 - инициализирует экземпляр inotify
ОБЗОР #include <sys/inotify.h>
int inotify_init(void); int inotify_init1(int flags);
ОПИСАНИЕ Обзор программного интерфейса inotify смотрите в inotify(7).
inotify_init() инициализирует новый экземпляр inotify и возвращает файловый дескриптор, связанный с очередью событий нового inotify.
Если flags равен 0, то inotify_init1() выполняет тоже, что и inotify_init(). Чтобы получить другое поведение, следующие значения могут быть сложены с помощью побитового ИЛИ в flags:
IN_NONBLOCK Устанавливает флаг состояния файла O_NONBLOCK для нового открытого файлового дескриптора. Использование данного флага заменяет дополнительные вызовы fcntl(2) для достижения того же результата.
IN_CLOEXEC Устанавлив
...
Читать дальше »
|
ИМЯ inotify_add_watch - добавляет сторожок к инициализированному экземпляру inotify
ОБЗОР #include <sys/inotify.h>
int inotify_add_watch(int fd, const char *pathname, uint32_t mask);
ОПИСАНИЕ Вызов inotify_add_watch() добавляет новый сторожок (watch) или изменяет существующий, для файла, чьё расположение указано в pathname; вызывающий должен иметь право читать этот файл. Аргумент fd является файловым дескриптором, ссылающимся на экземпляр inotify, у которого изменяется список сторожков. Отслеживаемые с pathname события указываются маской битов в аргументе mask. Описание битов mask смотрите в inotify(7).
При успешном выполнении inotify_add_watch() возвращает уникальный дескриптор сторожка данного экземпляра inotify, для объекта файловой системы (иноды), связанной с pathname. Если
...
Читать дальше »
|
ИМЯ outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт
ОБЗОР #include <sys/io.h>
unsigned char inb(unsigned short int port); unsigned char inb_p(unsigned short int port); unsigned short int inw(unsigned short int port); unsigned short int inw_p(unsigned short int port); unsigned int inl(unsigned short int port); unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port); void outb_p(unsigned char value, unsigned short int port); void outw(unsigned short int value, unsigned short int port); void outw_p(unsigned short int value, unsigned short int port); void outl(unsigned int value, unsigned short int port); void outl_p(unsigned int value, unsigned short int port);
void ins
...
Читать дальше »
|
ИМЯ
outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p,
outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт
ОБЗОР
#include <sys/io.h>
unsigned char inb(unsigned short int port);
unsigned char inb_p(unsigned short int port);
unsigned short int inw(unsigned short int port);
unsigned short int inw_p(unsigned short int port);
unsigned int inl(unsigned short int port);
unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port);
void outb_p(unsigned char value, unsigned short int port);
void outw(unsigned short int value, unsigned short int port);
void outw_p(unsigned short int value, unsigned short int port);
void outl(unsigned int v
...
Читать дальше »
|
ИМЯ init_module, finit_module - загружает модуль ядра
ОБЗОР int init_module(void *module_image, unsigned long len, const char *param_values);
int finit_module(int fd, const char *param_values, int flags);
Замечание: В заголовочных файлах glibc отсутствует init_module() и finit_module(); смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Вызов init_module() загружает образ ELF в пространство ядра, выполняет все необходимые перемещения символов, инициализирует значения параметров модуля, предоставленные вызывающим и запускает функцию модуля init. Данный системный вызов требует дополнительных прав.
Аргумент module_image указывает на буфер, содержащий двоичный образ для загрузки; в len задаётся размер этого буфера. Образ модуля должен быть корректным образом в формате ELF, собранным для работающего в данны
...
Читать дальше »
|
ИМЯ outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт
ОБЗОР #include <sys/io.h>
unsigned char inb(unsigned short int port); unsigned char inb_p(unsigned short int port); unsigned short int inw(unsigned short int port); unsigned short int inw_p(unsigned short int port); unsigned int inl(unsigned short int port); unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port); void outb_p(unsigned char value, unsigned short int port); void outw(unsigned short int value, unsigned short int port); void outw_p(unsigned short int value, unsigned short int port); void outl(unsigned int value, unsigned short int port); void outl_p(unsigned int value, unsigned short int port);
void ins
...
Читать дальше »
|
ИМЯ outb, outw, outl, outsb, outsw, outsl, inb, inw, inl, insb, insw, insl, outb_p, outw_p, outl_p, inb_p, inw_p, inl_p - ввод/вывод в порт
ОБЗОР #include <sys/io.h>
unsigned char inb(unsigned short int port); unsigned char inb_p(unsigned short int port); unsigned short int inw(unsigned short int port); unsigned short int inw_p(unsigned short int port); unsigned int inl(unsigned short int port); unsigned int inl_p(unsigned short int port);
void outb(unsigned char value, unsigned short int port); void outb_p(unsigned char value, unsigned short int port); void outw(unsigned short int value, unsigned short int port); void outw_p(unsigned short int value, unsigned short int port); void outl(unsigned int value, unsigned short int port); void outl_p(unsigned int value, unsigned short int port);
void ins
...
Читать дальше »
|
ИМЯ idle - переводит процесс 0 в режим бездействия
ОБЗОР #include <unistd.h>
int idle(void);
ОПИСАНИЕ idle() — это внутренний системный вызов, используемый во время начальной загрузки. Он помечает страницы процесса как выгружаемые в пространство подкачки, снижает его приоритет и входит в основной цикл планирования. idle() никогда не возвращает управление.
Только процесс 0 может вызывать idle(). Все пользовательские процессы, даже процессы с правами суперпользователя, будут получать EPERM.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ idle() никогда не возвращается в процесс 0 и всегда возвращает -1 для пользовательских процессов.
ОШИБКИ EPERM Всегда для пользовательского процесса.
ВЕРСИИ Начиная с Linux 2.3.13 этот
...
Читать дальше »
|
ИМЯ afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock, madvise1, mpx, prof, profil, putmsg, putpmsg, security, stty, tuxcall, ulimit, vserver - нереализованные системные вызовы
ОБЗОР Нереализованные системные вызовы.
ОПИСАНИЕ Данные системные вызовы не реализованы в ядре Linux.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ Эти системные вызовы всегда возвращают -1 и устанавливают для errno значение ENOSYS.
ЗАМЕЧАНИЯ Заметим, что ftime(3), profil(3) и ulimit(3) реализованы в виде библиотечных функций.
Некоторые системные вызовы, такие как alloc_hugepages(2), free_hugepages(2), ioperm(2), iopl(2) и vm86(2), существуют только для некоторых архитектур.
Некоторые системны
...
Читать дальше »
|
ИМЯ getxattr, lgetxattr, fgetxattr - получить расширенное значение атрибута
ОБЗОР #include <sys/types.h> #include <sys/xattr.h>
ssize_t getxattr(const char *path, const char *name, void *value, size_t size); ssize_t lgetxattr(const char *path, const char *name, void *value, size_t size); ssize_t fgetxattr(int fd, const char *name, void *value, size_t size);
ОПИСАНИЕ Расширенные атрибуты представляют собой пару имя:значение и связываются с записями inode (файлы, каталоги, символьные ссылки и т.п.). Они являются расширениями к обычным атрибутам, связанным со всеми записями inode в системе (например, данные stat(2)). Полное описание модели расширенных атрибутов можно найти в xattr(7).
getxattr() возвращает значение расширенного атрибута с именем name и связанног
...
Читать дальше »
|
ИМЯ getunwind - копирует раскрученные данные в буфер вызывающего
ОБЗОР #include <syscall.h> #include <linux/unwind.h>
long getunwind(void *buf, size_t buf_size);
Замечание: в glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Замечание: этот вызов устарел.
Специальный системный вызов getunwind() для IA-64 копирует раскрученные данные кадра вызова ядра в буфер, указанный в buf, и возвращает размер раскрученных данных; эти данные описывают шлюзовую страницу (gate page, код ядра, который отображается в адресное пространство пользователя).
Размер буфера buf задаётся в buf_size. Данные копируются только, если значение buf_size больше или равно размеру раскрученных данных и значение buf не равно NULL; в противном случае, данные не ко
...
Читать дальше »
|
ИМЯ getuid, geteuid - получить идентификатор пользователя
ОБЗОР #include <unistd.h> #include <sys/types.h>
uid_t getuid(void); uid_t geteuid(void);
ОПИСАНИЕ getuid() возвращает фактический идентификатор (ID) пользователя вызывающего процесса.
geteuid() возвращает эффективный идентификатор пользователя вызывающего процесса.
ОШИБКИ Функции всегда завершаются успешно.
СООТВЕТСТВИЕ СТАНДАРТАМ POSIX.1-2001, POSIX.1-2008, 4.3BSD.
ЗАМЕЧАНИЯ История В UNIX V6 вызов getuid() возвращал (euid << 8) + uid. В UNIX V7 появились отдельные вызовы getuid() и geteuid().
Первоначальные версии системных вызовов getuid() и geteuid() в Linux поддерживали только 16-битные идентификаторы пол
...
Читать дальше »
|
ИМЯ getuid, geteuid - получить идентификатор пользователя
ОБЗОР #include <unistd.h> #include <sys/types.h>
uid_t getuid(void); uid_t geteuid(void);
ОПИСАНИЕ getuid() возвращает фактический идентификатор (ID) пользователя вызывающего процесса.
geteuid() возвращает эффективный идентификатор пользователя вызывающего процесса.
ОШИБКИ Функции всегда завершаются успешно.
СООТВЕТСТВИЕ СТАНДАРТАМ POSIX.1-2001, POSIX.1-2008, 4.3BSD.
ЗАМЕЧАНИЯ История В UNIX V6 вызов getuid() возвращал (euid << 8) + uid. В UNIX V7 появились отдельные вызовы getuid() и geteuid().
Первоначальные версии системных вызовов getuid() и geteuid() в Linux поддерживали только 16-битные идентификаторы пол
...
Читать дальше »
|
ИМЯ gettimeofday, settimeofday - получает/устанавливает время
ОБЗОР #include <sys/time.h>
int gettimeofday(struct timeval *tv, struct timezone *tz);
int settimeofday(const struct timeval *tv, const struct timezone *tz);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
settimeofday(): начиная с glibc 2.19: _DEFAULT_SOURCE в glibc 2.19 и старее: _BSD_SOURCE
ОПИСАНИЕ Функция gettimeofday() и settimeofday() позволяют получить и задать время, а также часовой пояс. Аргумент tv имеет тип struct timeval (определён в <sys/time.h>):
struct timeval { time_t tv_sec; /* секунды */ suseconds_t tv_usec; /* микросекунды */ };
и задаёт количество секунд и микросекунд, прошедших с начала эпохи (см. time(2)). Аргуме
...
Читать дальше »
|
ИМЯ gettid - получить идентификатор нити
ОБЗОР #include <sys/types.h>
pid_t gettid(void);
Замечание: в glibc нет обёрточной функции для данного системного вызова; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ gettid() возвращает идентификатор нити вызвавшего процесса (TID). В случае процесса с одной нитью он эквивалентен идентификатору процесса (PID, возвращаемому getpid(2)). В случае процесса с множеством нитей все нити имеют одинаковый идентификатор процесса PID, но каждый из них имеет уникальный идентификатор нити TID. Для получения подробной информации см. обсуждение CLONE_THREAD clone(2).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении возвращается идентификатор нити вызывающего процесса.
ОШИБКИ Этот системный вызов всегда вы
...
Читать дальше »
|
ИМЯ get_thread_area, set_thread_area - назначение элемента GDT для области локального хранилища нити
ОБЗОР #include <linux/unistd.h> #include <asm/ldt.h>
int get_thread_area(struct user_desc *u_info); int set_thread_area(struct user_desc *u_info);
Замечание: В glibc нет обёрточных функций для этих системных вызовов; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ В Linux под локальное хранилище нити отдано три элемента глобальной таблицы дескрипторов (GDT). Подробней о GDT читайте в Intel Software Developer's Manual или AMD Architecture Programming Manual.
Этим системным вызовам передаётся указатель на структуру вида:
struct user_desc { unsigned int entry_number; unsigned long base_addr; unsigned int limit; unsigned int seg_32bit:1; unsigned int contents:2; unsign
...
Читать дальше »
|
ИМЯ getsockopt, setsockopt - получить или установить флаги сокета
ОБЗОР #include <sys/types.h> /* смотрите ЗАМЕЧАНИЯ */ #include <sys/socket.h>
int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen); int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen);
ОПИСАНИЕ getsockopt() и setsockopt() управляют параметрами сокета, на который указывает файловый дескриптор sockfd. Параметры могут быть из различных уровней протоколов; они всегда присутствуют на самом верхнем уровне сокета.
При работе с параметрами сокета должен быть указан уровень, на котором находится этот параметр и его имя. Для работы с параметрами на уровне API сокета в level указывается значение SOL_SOCKET. Для работы с параметрами на любом другом уровне,<
...
Читать дальше »
|
ИМЯ getsockname - получить имя сокета
ОБЗОР #include <sys/socket.h>
int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
ОПИСАНИЕ getsockname() возвращает текущий адрес, к которому привязан сокет sockfd, в буфере, указываемом addr. В параметре addrlen должно быть указано, сколько места выделено (в байтах), на которое указывает addr. При возврате в этом параметре передается реальный размер адреса сокета.
Возвращаемый адрес урежется, если предоставленный буфер окажется слишком маленьким; в этом случае в addrlen будет возвращено значение большее чем было в вызове.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
|
ИМЯ getsid - получить ID сеанса
ОБЗОР #include <unistd.h>
pid_t getsid(pid_t pid);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
getsid(): _XOPEN_SOURCE >= 500 || /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
ОПИСАНИЕ Вызов getsid(0) возвращает идентификатор (ID) сеанса вызвавшего процесса. Вызов getsid() возвращает идентификатор сеанса процесса с ID равным pid. Если pid равно 0, то getsid() возвращает идентификатор сеанса вызвавшего процесса.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении возвращается идентификатор сеанса. В случае ошибки возвращается (pid_t) -1, а errno устанавливается в соответствующее значение.
ОШИБКИ EPERM Процесс с идентификатором pid
...
Читать дальше »
|
ИМЯ getrusage - считывает использованные ресурсы
ОБЗОР #include <sys/time.h> #include <sys/resource.h>
int getrusage(int who, struct rusage *usage);
ОПИСАНИЕ getrusage() возвращает текущие ограничения на ресурсы для значения who, которое может быть:
RUSAGE_SELF Возвращает статистику по использованию ресурсов вызывающим процессом (суммируются значения всех нитей процесса).
RUSAGE_CHILDREN Возвращает статистику по использованию ресурсов всех потомков вызывающего процесса, которые завершились или завершение которых ожидается. Эта статистика включает в себя ресурсы, использованные внучками и дальнейшими потомками, если все промежуточные потомки завершились или их завершение ожидается.
RUSAGE_THREAD (начиная с Linux 2.6.26) Возвращает статистику по использов
...
Читать дальше »
|
ИМЯ get_robust_list, set_robust_list - возвращает/назначает список надёжных фьютексов (futexes)
ОБЗОР #include <linux/futex.h> #include <sys/types.h> #include <syscall.h>
long get_robust_list(int pid, struct robust_list_head **head_ptr, size_t *len_ptr); long set_robust_list(struct robust_list_head *head, size_t len);
Замечание: В glibc нет обёрточных функций для этих системных вызовов; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Данные системные вызовы служат для ведения понетевых списков надёжных фьютексов. Данные списки управляются из пользовательского пространства: ядро знает только расположение начала списка. Нить может информировать ядро о расположении своего списка надёжных фьютексов с помощью set_robust_list(). Адрес списка надёжных фьютексов нити можно получить с помощ
...
Читать дальше »
|
ИМЯ getrlimit, setrlimit, prlimit - считывает/устанавливает ограничения использования ресурсов
ОБЗОР #include <sys/time.h> #include <sys/resource.h>
int getrlimit(int resource, struct rlimit *rlim); int setrlimit(int resource, const struct rlimit *rlim);
int prlimit(pid_t pid, int resource, const struct rlimit *new_limit, struct rlimit *old_limit);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
prlimit(): _GNU_SOURCE
ОПИСАНИЕ Системные вызовы getrlimit() и setrlimit(), соответственно, получают и устанавливают ограничения использования ресурсов. Каждому ресурсу назначается мягкое и жёсткое ограничение, определяемое структурой rlimit:
struct rlimit { rlim_t rlim_cur; /* мягкое ограничение */ rlim_t rlim_max; /* жёст
...
Читать дальше »
|
ИМЯ getresuid, getresgid - получение действительного, эффективного и сохранённого идентификатора пользователя или группы
ОБЗОР #define _GNU_SOURCE /* смотрите feature_test_macros(7) */ #include <unistd.h>
int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);
ОПИСАНИЕ getresuid() возвращает действительный (real), эффективный (effective) и сохранённый (saved) set-user-ID идентификатор пользователя вызывающего процесса в аргументах ruid, euid и suid, соответственно. getresgid() выполняет аналогичную задачу для идентификаторов группы процесса.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
<
...
Читать дальше »
|
ИМЯ getresuid, getresgid - получение действительного, эффективного и сохранённого идентификатора пользователя или группы
ОБЗОР #define _GNU_SOURCE /* смотрите feature_test_macros(7) */ #include <unistd.h>
int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);
ОПИСАНИЕ getresuid() возвращает действительный (real), эффективный (effective) и сохранённый (saved) set-user-ID идентификатор пользователя вызывающего процесса в аргументах ruid, euid и suid, соответственно. getresgid() выполняет аналогичную задачу для идентификаторов группы процесса.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
<
...
Читать дальше »
|
ИМЯ getresuid, getresgid - получение действительного, эффективного и сохранённого идентификатора пользователя или группы
ОБЗОР #define _GNU_SOURCE /* смотрите feature_test_macros(7) */ #include <unistd.h>
int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);
ОПИСАНИЕ getresuid() возвращает действительный (real), эффективный (effective) и сохранённый (saved) set-user-ID идентификатор пользователя вызывающего процесса в аргументах ruid, euid и suid, соответственно. getresgid() выполняет аналогичную задачу для идентификаторов группы процесса.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
<
...
Читать дальше »
|
ИМЯ getresuid, getresgid - получение действительного, эффективного и сохранённого идентификатора пользователя или группы
ОБЗОР #define _GNU_SOURCE /* смотрите feature_test_macros(7) */ #include <unistd.h>
int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid);
ОПИСАНИЕ getresuid() возвращает действительный (real), эффективный (effective) и сохранённый (saved) set-user-ID идентификатор пользователя вызывающего процесса в аргументах ruid, euid и suid, соответственно. getresgid() выполняет аналогичную задачу для идентификаторов группы процесса.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno устанавливается в соответствующее значение.
<
...
Читать дальше »
|
ИМЯ getrandom - возвращает серию произвольных байт
ОБЗОР #include <sys/random.h>
ssize_t getrandom(void *buf, size_t buflen, unsigned int flags);
ОПИСАНИЕ Системный вызов getrandom() заполняет буфер, указанный в buf, произвольными байтами в количестве до buflen. Эти байты можно использовать как начальные значения в генераторах произвольных чисел пространства пользователя или с целями шифрования.
По умолчанию, getrandom() забирает энтропию из источника urandom (т. е., того же источника что и устройство /dev/urandom). Это поведение можно изменить через параметр flags.
Если источник urandom инициализирован, то из него можно прочитать не более 256 байт, но всегда возвращается столько байт, сколько запрошено и это не будет прерываться сигналами. Для буферов большего размера это не га
...
Читать дальше »
|
ИМЯ getpriority, setpriority - получить/установить приоритет планирования программы
ОБЗОР #include <sys/time.h> #include <sys/resource.h>
int getpriority(int which, id_t who); int setpriority(int which, id_t who, int prio);
ОПИСАНИЕ С помощью вызова getpriority() можно получить приоритет планирования (scheduling priority) процесса, группы процессов или пользователя, которые заданы в аргументах which и who, а с помощью вызова setpriority() назначить его. Атрибут процесса этих системных вызовов тот же самый что атрибут (так называемое значение уступчивости «nice»), с которым работает вызов nice(2).
Значением which может быть одно из: PRIO_PROCESS, PRIO_PGRP или PRIO_USER, а значение who рассматривается относительно which (идентификатор процесса, если PRIO_PROCESS; группы
...
Читать дальше »
|
ИМЯ getpid, getppid - получение идентификатора процесса
ОБЗОР #include <sys/types.h> #include <unistd.h>
pid_t getpid(void); pid_t getppid(void);
ОПИСАНИЕ Вызов getpid() возвращает идентификатор (PID) вызвавшего процесса (часто используется функциями, которые генерируют уникальные имена временных файлов).
Вызов getppid() возвращает идентификатор процесса, являющегося родительским по отношению к вызвавшему процессу. Результат равен идентификатору процесса, который создал этот процесс с помощью fork(), или идентификатору процесса, который заместил родителя (или init(1), или процесс «сборщик», определённый с помощью операции PR_SET_CHILD_SUBREAPER вызовом prctl(2)), если этот процесс уже завершён.
ОШИБКИ Функции всегда завершаются успе
...
Читать дальше »
|
ИМЯ afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock, madvise1, mpx, prof, profil, putmsg, putpmsg, security, stty, tuxcall, ulimit, vserver - нереализованные системные вызовы
ОБЗОР Нереализованные системные вызовы.
ОПИСАНИЕ Данные системные вызовы не реализованы в ядре Linux.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ Эти системные вызовы всегда возвращают -1 и устанавливают для errno значение ENOSYS.
ЗАМЕЧАНИЯ Заметим, что ftime(3), profil(3) и ulimit(3) реализованы в виде библиотечных функций.
Некоторые системные вызовы, такие как alloc_hugepages(2), free_hugepages(2), ioperm(2), iopl(2) и vm86(2), существуют только для некоторых архитектур.
Некоторые системны
...
Читать дальше »
|
ИМЯ getpid, getppid - получение идентификатора процесса
ОБЗОР #include <sys/types.h> #include <unistd.h>
pid_t getpid(void); pid_t getppid(void);
ОПИСАНИЕ Вызов getpid() возвращает идентификатор (PID) вызвавшего процесса (часто используется функциями, которые генерируют уникальные имена временных файлов).
Вызов getppid() возвращает идентификатор процесса, являющегося родительским по отношению к вызвавшему процессу. Результат равен идентификатору процесса, который создал этот процесс с помощью fork(), или идентификатору процесса, который заместил родителя (или init(1), или процесс «сборщик», определённый с помощью операции PR_SET_CHILD_SUBREAPER вызовом prctl(2)), если этот процесс уже завершён.
ОШИБКИ Функции всегда завершаются успе
...
Читать дальше »
|
ИМЯ setpgid, getpgid, setpgrp, getpgrp - устанавливает/получает группу процессов
ОБЗОР #include <unistd.h>
int setpgid(pid_t pid, pid_t pgid); pid_t getpgid(pid_t pid);
pid_t getpgrp(void); /* по версии POSIX.1 */ pid_t getpgrp(pid_t pid); /* по версии BSD */
int setpgrp(void); /* по версии System V */ int setpgrp(pid_t pid, pid_t pgid); /* по версии BSD */
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
getpgid(): _XOPEN_SOURCE >= 500 || /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
setpgrp() (POSIX.1): _XOPEN_SOURCE >= 500 || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE || /* в версии glibc <= 2.19: */ _SVID_SOURCE
setpgrp() (BSD), getpgrp() (BSD): [Доступно только в версиях glibc до 2.19] _BSD_SOURCE &&am
...
Читать дальше »
|
ИМЯ setpgid, getpgid, setpgrp, getpgrp - устанавливает/получает группу процессов
ОБЗОР #include <unistd.h>
int setpgid(pid_t pid, pid_t pgid); pid_t getpgid(pid_t pid);
pid_t getpgrp(void); /* по версии POSIX.1 */ pid_t getpgrp(pid_t pid); /* по версии BSD */
int setpgrp(void); /* по версии System V */ int setpgrp(pid_t pid, pid_t pgid); /* по версии BSD */
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
getpgid(): _XOPEN_SOURCE >= 500 || /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
setpgrp() (POSIX.1): _XOPEN_SOURCE >= 500 || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE || /* в версии glibc <= 2.19: */ _SVID_SOURCE
setpgrp() (BSD), getpgrp() (BSD): [Доступно только в версиях glibc до 2.19] _BSD_SOURCE &&am
...
Читать дальше »
|
ИМЯ getpeername - получает имя подключившегося сокета
ОБЗОР #include <sys/socket.h>
int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
ОПИСАНИЕ getpeername() возвращает адрес машины, подключившейся к сокету sockfd, в буфер, указанный addr. В параметре addrlen должно быть указано, сколько места выделено, на которое указывает addr. По возвращении он содержит реальный размер памяти, занимаемый возвращаемым именем (в байтах). Имя обрезается, если буфер окажется слишком мал.
Возвращаемый адрес урежется, если предоставленный буфер окажется слишком маленьким; в этом случае в addrlen будет возвращено значение большее чем было в вызове.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а errno ус
...
Читать дальше »
|
ИМЯ getpagesize - определяет размер страницы памяти
ОБЗОР #include <unistd.h>
int getpagesize(void);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
getpagesize(): Начиная с glibc 2.19: _DEFAULT_SOURCE || ! (_POSIX_C_SOURCE >= 200112L) В glibc с 2.12 по 2.19: _BSD_SOURCE || ! (_POSIX_C_SOURCE >= 200112L) До glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500
ОПИСАНИЕ Вызов getpagesize() возвращает количество байтов в странице памяти, где «страница» представляет собой блок фиксированной длины, единица измерения при выделения памяти и файлового отображения, выполняемого с помощью mmap(2).
СООТВЕТСТВИЕ СТАНДАРТАМ SVr4, 4.4BSD, SUSv2. В SUSv2 вызов getpagesize() отмечен как УСТАРЕВШИЙ, и был уд
...
Читать дальше »
|
ИМЯ afs_syscall, break, fattach, fdetach, ftime, getmsg, getpmsg, gtty, isastream, lock, madvise1, mpx, prof, profil, putmsg, putpmsg, security, stty, tuxcall, ulimit, vserver - нереализованные системные вызовы
ОБЗОР Нереализованные системные вызовы.
ОПИСАНИЕ Данные системные вызовы не реализованы в ядре Linux.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ Эти системные вызовы всегда возвращают -1 и устанавливают для errno значение ENOSYS.
ЗАМЕЧАНИЯ Заметим, что ftime(3), profil(3) и ulimit(3) реализованы в виде библиотечных функций.
Некоторые системные вызовы, такие как alloc_hugepages(2), free_hugepages(2), ioperm(2), iopl(2) и vm86(2), существуют только для некоторых архитектур.
Некоторые системны
...
Читать дальше »
|
ИМЯ get_mempolicy - возвращает политику работы с памятью NUMA для нити
ОБЗОР #include <numaif.h>
long get_mempolicy(int *mode, unsigned long *nodemask, unsigned long maxnode, void *addr, unsigned long flags);
Компонуется при указании параметра -lnuma.
ОПИСАНИЕ Вызов get_mempolicy() возвращает политику NUMA вызывающей нити или адреса памяти (в зависимости от значения flags).
Машина с NUMA имеет различные контроллеры памяти с различными расстояниями до определённых ЦП. Политикой памяти задаётся узел, на котором выделяется память для нити.
Если значение flags равно 0, то в буферы, указанные в mode и nodemask, возвращается информация о политике по умолчанию для вызывающей нити (которая была задана с помощью set_mempolicy(2)). Полученное значение может использоваться д
...
Читать дальше »
|
ИМЯ get_kernel_syms - получить экспортируемые символы ядра и модулей
ОБЗОР #include <linux/module.h>
int get_kernel_syms(struct kernel_sym *table);
Замечание: В заголовочных файлах glibc этой системный вызов отсутствует; смотрите ЗАМЕЧАНИЯ.
ОПИСАНИЕ Замечание: Данный системный вызов доступен только в ядрах до Linux 2.6.
Если table равно NULL, то get_kernel_syms() возвращает количество символов доступных для запроса. Иначе таблица заполняется структурами:
struct kernel_sym { unsigned long value; char name[60]; };
Символы вида #module-name представляют собой ссылки на модули. Значение, связанное с таким символом, содержит адрес, по которому загружен модуль.
К символам, экспортируемым из модуля, добавляется метка модуля, а модули возвращаются в обратном поря
...
Читать дальше »
|
ИМЯ getitimer, setitimer - считывает или устанавливает значение таймера интервалов
ОБЗОР #include <sys/time.h>
int getitimer(int which, struct itimerval *curr_value); int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value);
ОПИСАНИЕ Данные системные вызовы предоставляют доступ к интервальным таймерам, то есть таймерам, у которых изначально истекает срок в будущем, и (необязательно) с регулярными интервалами после. Когда у таймера истекает срок, вызвавшему процессу отправляется сигнал и таймер перезапускается с задаваемым интервалом (если интервал не равен нулю).
В аргументе which можно задать три типа таймеров, каждый выполняет отсчёт по разным часам и генерирует разный сигнал по истечении срока:
ITIMER_REAL Этот таймер отсчитывается по реальному
...
Читать дальше »
|
ИМЯ gethostname, sethostname - получить/установить имя узла
ОБЗОР #include <unistd.h>
int gethostname(char *name, size_t len); int sethostname(const char *name, size_t len);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
gethostname(): Начиная с glibc 2.12: _BSD_SOURCE || _XOPEN_SOURCE >= 500 || /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200112L sethostname(): начиная с glibc 2.21: _DEFAULT_SOURCE в glibc 2.19 и 2.20: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) до glibc 2.19, включительно: _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
ОПИСАНИЕ Эти системные вызовы используются для доступа или изменения имени узла текущего процессора.
Вызов sethostname() устанавли
...
Читать дальше »
|
ИМЯ gethostid, sethostid - возвращает или назначает уникальный идентификатор текущего узла
ОБЗОР #include <unistd.h>
long gethostid(void); int sethostid(long hostid);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
gethostid(): _BSD_SOURCE || _XOPEN_SOURCE >= 500 sethostid(): начиная с glibc 2.21: _DEFAULT_SOURCE в glibc 2.19 и 2.20: _DEFAULT_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500) до glibc 2.19, включительно: _BSD_SOURCE || (_XOPEN_SOURCE && _XOPEN_SOURCE < 500)
ОПИСАНИЕ Функции gethostid() и sethostid(), соответственно, возвращают и устанавливают уникальный 32-битный идентификатор текущей машины. Данный 32-битный идентификатор считается уникальным среди всех существующих систем UNIX. О
...
Читать дальше »
|
ИМЯ getgroups, setgroups - получить/установить список дополнительных идентификаторов групп
ОБЗОР #include <sys/types.h> #include <unistd.h>
int getgroups(int size, gid_t list[]);
#include <grp.h>
int setgroups(size_t size, const gid_t *list);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
setgroups(): Начиная с glibc 2.19: _DEFAULT_SOURCE В версии Glibc 2.19 и более ранних: _BSD_SOURCE
ОПИСАНИЕ Вызов getgroups() возвращает идентификаторы дополнительных групп вызывающего процесса в списке list. В аргументе size должно быть указано максимальное количество элементов, которые можно сохранить в буфер, указанный list. Если вызывающий процесс является членом в более чем size дополнительных групп, то возвращается ошибка
...
Читать дальше »
|
ИМЯ getgroups, setgroups - получить/установить список дополнительных идентификаторов групп
ОБЗОР #include <sys/types.h> #include <unistd.h>
int getgroups(int size, gid_t list[]);
#include <grp.h>
int setgroups(size_t size, const gid_t *list);
Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
setgroups(): Начиная с glibc 2.19: _DEFAULT_SOURCE В версии Glibc 2.19 и более ранних: _BSD_SOURCE
ОПИСАНИЕ Вызов getgroups() возвращает идентификаторы дополнительных групп вызывающего процесса в списке list. В аргументе size должно быть указано максимальное количество элементов, которые можно сохранить в буфер, указанный list. Если вызывающий процесс является членом в более чем size дополнительных групп, то возвращается ошибка
...
Читать дальше »
|
ИМЯ getgid, getegid - получить идентификатор группы процесса
ОБЗОР #include <unistd.h> #include <sys/types.h>
gid_t getgid(void); gid_t getegid(void);
ОПИСАНИЕ getgid() возвращает действительный идентификатор группы вызывающего процесса.
getegid() возвращает эффективный идентификатор группы вызывающего процесса.
ОШИБКИ Функции всегда завершаются успешно.
СООТВЕТСТВИЕ СТАНДАРТАМ POSIX.1-2001, POSIX.1-2008, 4.3BSD.
ЗАМЕЧАНИЯ Первоначальные версии системных вызовов getgid() и getegid() в Linux поддерживали только 16-битные идентификаторы групп. Позднее в Linux 2.4 были добавлены вызовы getgid32() и getegid32(), поддерживающие 32-битные идентификаторы. В glibc обёрточные функции getgid() и
...
Читать дальше »
|
ИМЯ getgid, getegid - получить идентификатор группы процесса
ОБЗОР #include <unistd.h> #include <sys/types.h>
gid_t getgid(void); gid_t getegid(void);
ОПИСАНИЕ getgid() возвращает действительный идентификатор группы вызывающего процесса.
getegid() возвращает эффективный идентификатор группы вызывающего процесса.
ОШИБКИ Функции всегда завершаются успешно.
СООТВЕТСТВИЕ СТАНДАРТАМ POSIX.1-2001, POSIX.1-2008, 4.3BSD.
ЗАМЕЧАНИЯ Первоначальные версии системных вызовов getgid() и getegid() в Linux поддерживали только 16-битные идентификаторы групп. Позднее в Linux 2.4 были добавлены вызовы getgid32() и getegid32(), поддерживающие 32-битные идентификаторы. В glibc обёрточные функции getgid() и
...
Читать дальше »
|
ИМЯ getuid, geteuid - получить идентификатор пользователя
ОБЗОР #include <unistd.h> #include <sys/types.h>
uid_t getuid(void); uid_t geteuid(void);
ОПИСАНИЕ getuid() возвращает фактический идентификатор (ID) пользователя вызывающего процесса.
geteuid() возвращает эффективный идентификатор пользователя вызывающего процесса.
ОШИБКИ Функции всегда завершаются успешно.
СООТВЕТСТВИЕ СТАНДАРТАМ POSIX.1-2001, POSIX.1-2008, 4.3BSD.
ЗАМЕЧАНИЯ История В UNIX V6 вызов getuid() возвращал (euid << 8) + uid. В UNIX V7 появились отдельные вызовы getuid() и geteuid().
Первоначальные версии системных вызовов getuid() и geteuid() в Linux поддерживали только 16-битные идентификаторы пол
...
Читать дальше »
|
ИМЯ getuid, geteuid - получить идентификатор пользователя
ОБЗОР #include <unistd.h> #include <sys/types.h>
uid_t getuid(void); uid_t geteuid(void);
ОПИСАНИЕ getuid() возвращает фактический идентификатор (ID) пользователя вызывающего процесса.
geteuid() возвращает эффективный идентификатор пользователя вызывающего процесса.
ОШИБКИ Функции всегда завершаются успешно.
СООТВЕТСТВИЕ СТАНДАРТАМ POSIX.1-2001, POSIX.1-2008, 4.3BSD.
ЗАМЕЧАНИЯ История В UNIX V6 вызов getuid() возвращал (euid << 8) + uid. В UNIX V7 появились отдельные вызовы getuid() и geteuid().
Первоначальные версии системных вызовов getuid() и geteuid() в Linux поддерживали только 16-битные идентификаторы пол
...
Читать дальше »
|
ИМЯ getgid, getegid - получить идентификатор группы процесса
ОБЗОР #include <unistd.h> #include <sys/types.h>
gid_t getgid(void); gid_t getegid(void);
ОПИСАНИЕ getgid() возвращает действительный идентификатор группы вызывающего процесса.
getegid() возвращает эффективный идентификатор группы вызывающего процесса.
ОШИБКИ Функции всегда завершаются успешно.
СООТВЕТСТВИЕ СТАНДАРТАМ POSIX.1-2001, POSIX.1-2008, 4.3BSD.
ЗАМЕЧАНИЯ Первоначальные версии системных вызовов getgid() и getegid() в Linux поддерживали только 16-битные идентификаторы групп. Позднее в Linux 2.4 были добавлены вызовы getgid32() и getegid32(), поддерживающие 32-битные идентификаторы. В glibc обёрточные функции getgid() и
...
Читать дальше »
| |