Главная » 2017 » Ноябрь » 24





ИМЯ


sync, syncfs - записывает кэши файловых систем на диск



ОБЗОР


#include <unistd.h>

void sync(void);

int syncfs(int fd);

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

sync():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* версии glibc <= 2.19: */ _BSD_SOURCE

syncfs():
_GNU_SOURCE



ОПИСАНИЕ


Вызов sync() приводит к записи в файловую систему всех отложенных изменений метаданных
файловой системы и кэшированных файловых данных.

Вызов syncfs() подобен sync(), но синхронизирует только файловую систему, содержащую файл,
на который указывает открытый файловый дескриптор fd.



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


При нормальном завершении работы syncfs() возвращает 0. В случае о ... Читать дальше »

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





ИМЯ


symlink, symlinkat - создаёт новое имя для файла



ОБЗОР


#include <unistd.h>

int symlink(const char *target, const char *linkpath);

#include <fcntl.h> /* определения констант of AT_* */
#include <unistd.h>

int symlinkat(const char *target, int newdirfd, const char *linkpath);

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

symlink():
_XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
|| /* в версии glibc <= 2.19: */ _BSD_SOURCE

symlinkat():
Начиная с glibc 2.10:
_POSIX_C_SOURCE >= 200809L
До glibc 2.10:
_ATFILE_SOURCE



ОПИСАНИЕ


Вызов symlink() создаёт символьную ссылку с именем linkpath, которая содержит строку target.

Символьные ссылки интерпретируются «на лету», как будто бы содержи ... Читать дальше »

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





ИМЯ


symlink, symlinkat - создаёт новое имя для файла



ОБЗОР


#include <unistd.h>

int symlink(const char *target, const char *linkpath);

#include <fcntl.h> /* определения констант of AT_* */
#include <unistd.h>

int symlinkat(const char *target, int newdirfd, const char *linkpath);

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

symlink():
_XOPEN_SOURCE >= 500 || _POSIX_C_SOURCE >= 200112L
|| /* в версии glibc <= 2.19: */ _BSD_SOURCE

symlinkat():
Начиная с glibc 2.10:
_POSIX_C_SOURCE >= 200809L
До glibc 2.10:
_ATFILE_SOURCE



ОПИСАНИЕ


Вызов symlink() создаёт символьную ссылку с именем linkpath, которая содержит строку target.

Символьные ссылки интерпретируются «на лету», как будто бы содержи ... Читать дальше »

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





ИМЯ


swapon, swapoff - запускает/останавливает подкачку данных в файл/устройство



ОБЗОР


#include <unistd.h>
#include <sys/swap.h>

int swapon(const char *path, int swapflags);
int swapoff(const char *path);



ОПИСАНИЕ


swapon() включает использование файла или блочного устройства, указанного в path, в качестве
подкачки данных. swapoff() выключает использование файла или блочного устройства, указанного
в path, в качестве подкачки данных.

Если при вызове swapon() в аргументе swapflags установлен флаг SWAP_FLAG_pFER, то новое
пространство подкачки будет иметь больший приоритет, чем используемый по умолчанию.
Приоритет задаётся в swapflags следующим образом:

(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

Если в аргументе swapflags вызова swapon() указан флаг SWAP ... Читать дальше »

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





ИМЯ


swapon, swapoff - запускает/останавливает подкачку данных в файл/устройство



ОБЗОР


#include <unistd.h>
#include <sys/swap.h>

int swapon(const char *path, int swapflags);
int swapoff(const char *path);



ОПИСАНИЕ


swapon() включает использование файла или блочного устройства, указанного в path, в качестве
подкачки данных. swapoff() выключает использование файла или блочного устройства, указанного
в path, в качестве подкачки данных.

Если при вызове swapon() в аргументе swapflags установлен флаг SWAP_FLAG_pFER, то новое
пространство подкачки будет иметь больший приоритет, чем используемый по умолчанию.
Приоритет задаётся в swapflags следующим образом:

(prio << SWAP_FLAG_PRIO_SHIFT) & SWAP_FLAG_PRIO_MASK

Если в аргументе swapflags вызова swapon() указан флаг SWAP ... Читать дальше »

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





ИМЯ


subpage_prot - определяет подстраничную защиту адресного диапазона



ОБЗОР


long subpage_prot(unsigned long addr, unsigned long len,
uint32_t *map);

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



ОПИСАНИЕ


Системный вызов (есть только для PowerPC) subpage_prot() предоставляет возможность контроля
доступа к отдельным 4 КБ подстраницам в системах, где размер страницы равен 64 КБ.

Карта защиты налагается на страницы памяти для области, начинающейся с addr и имеющей размер
len байт. Значения обоих аргументов должны быть выровнены на 64-КБ границу.

Карта защиты задаётся в буфере, на который указывает map. В карте на каждую 4-килобайтную
подстраницу выделяется 2 бита; таким образом, в каждом 32-битном слове задаётся защита для
16 4-килобайтных подстрани ... Читать дальше »

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





ИМЯ


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), существуют только для некоторых архитектур.

Некоторые системные вызовы ... Читать дальше »

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





ИМЯ


stime - устанавливает системное время



ОБЗОР


#include <time.h>

int stime(const time_t *t);

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

stime():
начиная с glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 и старее:
_SVID_SOURCE



ОПИСАНИЕ


Вызов stime() устанавливает системное (не аппаратное) время и дату машины. Время, заданное в
t, измеряется в секундах с начала Эпохи, с 00:00:00 1 января 1970 года (UTC). Функцию
stime() может вызывать только суперпользователь.



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


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



ОШИБКИ


EFAULT Ошибка при получении информации из пространства пользовател ... Читать дальше »

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





ИМЯ


statx - считывает состояние файла (расширенный вариант)



ОБЗОР


#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <fcntl.h> /* константы AT_* */

int statx(int dirfd, const char *pathname, int flags,
unsigned int mask, struct statx *statxbuf);

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



ОПИСАНИЕ


Этот системный вызов возвращает информацию о файле, записывая её в буфер, на который
указывает statxbuf. Возвращаемый буфер представляет собой структуру следующего вида:

struct statx {
__u32 stx_mask; /* маска битов, показывающая
заполненные поля */
__u32 stx_blksize; /* размер блока ввода-вывода файловой системы */
__u64 stx_attributes; /* индикаторы дополнительных файловых атрибутов */
__u32 stx_nlink ... Читать дальше »

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





ИМЯ


statvfs, fstatvfs - получение статистики по файловой системе



ОБЗОР


#include <sys/statvfs.h>

int statvfs(const char *path, struct statvfs *buf);
int fstatvfs(int fd, struct statvfs *buf);



ОПИСАНИЕ


Функция statvfs() возвращает информацию о смонтированной файловой системе. path является
путём любого файла, расположенного в смонтированной файловой системе. buf является
указателем на структуру statvfs, определённую примерно следующим образом:

struct statvfs {
unsigned long f_bsize; /* размер блока файловой системы */
unsigned long f_frsize; /* размер фрагмента */
fsblkcnt_t f_blocks; /* размер ФС в единицах f_frsize */
fsblkcnt_t f_bfree; /* количество свободных блоков */
fsblkcnt_t f_bavail; /* количество свободных блоков
для непривилегированных пользователей */
fsfilcnt_t f ... Читать дальше »

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





ИМЯ


statfs, fstatfs - возвращает статистику по файловой системе



ОБЗОР


#include <sys/vfs.h> /* или <sys/statfs.h> */

int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf);



ОПИСАНИЕ


Системный вызов statfs() возвращает информацию о смонтированной файловой системе. Значение
path является путём любого файла, расположенного в смонтированной файловой системе. Значение
buf является указателем на структуру statfs, определённую, примерно, следующим образом:

struct statfs {
__fsword_t f_type; /* тип файловой системы (смотрите далее) */
__fsword_t f_bsize; /* оптимальный размер пересылаемых блоков */
fsblkcnt_t f_blocks; /* общее количество блоков данных
в файловой системе */
fsblkcnt_t f_bfree; /* свободных блоков в файловой системе */
fsblkcnt_t f ... Читать дальше »

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





ИМЯ


statfs, fstatfs - возвращает статистику по файловой системе



ОБЗОР


#include <sys/vfs.h> /* или <sys/statfs.h> */

int statfs(const char *path, struct statfs *buf);
int fstatfs(int fd, struct statfs *buf);



ОПИСАНИЕ


Системный вызов statfs() возвращает информацию о смонтированной файловой системе. Значение
path является путём любого файла, расположенного в смонтированной файловой системе. Значение
buf является указателем на структуру statfs, определённую, примерно, следующим образом:

struct statfs {
__fsword_t f_type; /* тип файловой системы (смотрите далее) */
__fsword_t f_bsize; /* оптимальный размер пересылаемых блоков */
fsblkcnt_t f_blocks; /* общее количество блоков данных
в файловой системе */
fsblkcnt_t f_bfree; /* свободных блоков в файловой системе */
fsblkcnt_t f ... Читать дальше »

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





ИМЯ


stat, fstat, lstat, fstatat - считывает состояние файла



ОБЗОР


#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

int stat(const char *pathname, struct stat *statbuf);
int fstat(int fd, struct stat *statbuf);
int lstat(const char *pathname, struct stat *statbuf);

#include <fcntl.h> /* определения констант AT_* */
#include <sys/stat.h>

int fstatat(int dirfd, const char *pathname, struct stat *statbuf,
int flags);

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

lstat():
/* glibc 2.19 и старее */ _BSD_SOURCE
|| /* начиная с glibc 2.20 */ _DEFAULT_SOURCE
|| _XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.10: */ _POSIX_C_SOURCE >= 200112L

fstatat():
Начиная с glibc 2.10:
_POSIX_C_SOURCE >= ... Читать дальше »

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





ИМЯ


stat, fstat, lstat, fstatat - считывает состояние файла



ОБЗОР


#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>

int stat(const char *pathname, struct stat *statbuf);
int fstat(int fd, struct stat *statbuf);
int lstat(const char *pathname, struct stat *statbuf);

#include <fcntl.h> /* определения констант AT_* */
#include <sys/stat.h>

int fstatat(int dirfd, const char *pathname, struct stat *statbuf,
int flags);

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

lstat():
/* glibc 2.19 и старее */ _BSD_SOURCE
|| /* начиная с glibc 2.20 */ _DEFAULT_SOURCE
|| _XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.10: */ _POSIX_C_SOURCE >= 200112L

fstatat():
Начиная с glibc 2.10:
_POSIX_C_SOURCE >= ... Читать дальше »

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





ИМЯ


sgetmask, ssetmask - работа с маской сигналов (устарел)



ОБЗОР


long sgetmask(void);

long ssetmask(long newmask);

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



ОПИСАНИЕ


Данные системные вызовы устарели. Используйте вместо них sigprocmask(2).

Вызов sgetmask() возвращает маску сигналов вызывающего процесса.

Вызов ssetmask() устанавливает маску сигналов вызывающего процесса равной значению,
указанному в newmask. Возвращается предыдущее значение маски сигналов.

Маски сигналов обрабатываются этими системными вызовами как простые битовые маски (в отличие
от sigset_t, который используется в sigprocmask(2)); для создания и проверки масок
используйте sigmask(3).



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


Вызов sge ... Читать дальше »

Просмотров: 495 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


spu_run - выполняет контекст SPU



ОБЗОР


#include <sys/spu.h>

int spu_run(int fd, unsigned int *npc, unsigned int *event);

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



ОПИСАНИЕ


Системный вызов spu_run() используется на машинах PowerPC с архитектурой Cell Broadband
Engine для получения доступа к Synergistic Processor Unit (SPU). Аргумент fd представляет
собой файловый дескриптор, возвращаемый вызовом spu_create(2) и указывающий на определённый
контекст SPU. Когда контекст планируется на физическом SPU, он запускается на выполнение
начиная с инструкции, на которую указывает значение npc.

Выполнение кода SPU происходит синхронно, то есть spu_run() блокируется на время работы SPU.
Если требуется параллельное выполнение кода SPU и кода ... Читать дальше »

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





ИМЯ


spu_create - создаёт новый контекст spu



ОБЗОР


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

int spu_create(const char *pathname, int flags, mode_t mode);
int spu_create(const char *pathname, int flags, mode_t mode,
int neighbor_fd);

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



ОПИСАНИЕ


Системный вызов spu_create() используется на машинах PowerPC с архитектурой Cell Broadband
Engine для получения доступа к Synergistic Processor Unit (SPU). Он создаёт новый логический
контекст для SPU в pathname и возвращает связанный с ним файловый дескриптор. Аргумент
pathname должен указывать на несуществующий каталог в точке монтирования файловой системы
SPU (spufs). Если работа spu_create() выполнена без ошибок, то создаётся каталог pathname, а< ... Читать дальше »

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





ИМЯ


splice - подключает данные к каналу/выбирает данные из канала



ОБЗОР


#define _GNU_SOURCE /* см. feature_test_macros(7) */
#include <fcntl.h>

ssize_t splice(int fd_in, loff_t *off_in, int fd_out,
loff_t *off_out, size_t len, unsigned int flags);



ОПИСАНИЕ


Вызов splice() перемещает данные между двумя файловыми дескрипторами не выполняя при этом
копирование между адресным пространством пользователя и ядра. Он пересылает до len байт
данных из файлового дескриптора fd_in в файловый дескриптор fd_out, где один из файловых
дескрипторов должен ссылаться на канал.

К fd_in и off_in применяются следующие правила:

* Если fd_in указывает на канал, то значение off_in должно быть NULL.

* Если fd_in не указывает на канал и off_in равно NULL, то из fd_in читаются байты начиная
с сме ... Читать дальше »

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





ИМЯ


socketpair - создает пару присоединённых сокетов



ОБЗОР


#include <sys/types.h> /* смотрите ЗАМЕЧАНИЯ */
#include <sys/socket.h>

int socketpair(int domain, int type, int protocol, int sv[2]);



ОПИСАНИЕ


Вызов socketpair() создает пару неименованых присоединённых сокетов в заданном домене
domain заданного типа type, используя (при необходимости) заданный протокол protocol.
Подробнее об этих аргументах можно узнать в socket(2).

Файловые дескрипторы, используемые как ссылки на новые сокеты, возвращаются в sv[0] и sv[1].
Никаких различий между этими двумя сокетами нет.



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


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

В Linux (и других системах) so ... Читать дальше »

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





ИМЯ


socketcall - системные вызовы сокетов



ОБЗОР


#include <linux/net.h>

int socketcall(int call, unsigned long *args);



ОПИСАНИЕ


socketcall() — это общая точка входа в ядро всех системных вызовов сокетов. В аргументе call
задаётся функция сокета, которая будет вызвана. Аргумент args указывает на блок параметров
функции, которые передаются соответствующему вызову.

Пользовательские программы должны оперировать обычными функциями, имеющими стандартные
имена. О существовании socketcall() необходимо знать лишь создателям стандартных библиотек и
ядра.

вызов справочная страница
SYS_SOCKET socket(2)
SYS_BIND bind(2)
SYS_CONNECT connect(2)
SYS_LISTEN listen(2)
SYS_ACCEPT accept(2)
SYS_GETSOCKNAME getsockname(2)
SYS_GETPEERNAME ge ... Читать дальше »

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





ИМЯ


socket - создаёт конечную точку соединения



ОБЗОР


#include <sys/types.h> /* смотрите ЗАМЕЧАНИЯ */
#include <sys/socket.h>

int socket(int domain, int type, int protocol);



ОПИСАНИЕ


Системный вызов socket() создаёт конечную точку соединения и возвращает файловый дескриптор,
указывающий на эту точку. Возвращаемый при успешном выполнении файловый дескриптор будет
иметь самый маленький номер, который не используется процессом.

Параметр domain задает домен соединения: выбирает семейство протоколов, которое будет
использоваться для создания соединения. Семейства описаны в <sys/socket.h>. В настоящее
время распознаются такие форматы:

Название Назначение Справочная страница
AF_UNIX, AF_LOCAL Локальное соединение unix(7)
AF_INET T}Протоколы
Интернет IPv4:T{ ip( ... Читать дальше »

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





ИМЯ


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





ИМЯ


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





ИМЯ


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



ОБЗОР


int sigreturn(...);



ОПИСАНИЕ


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

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

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 454 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 460 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 457 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 510 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 508 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 459 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 453 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 463 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 532 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 439 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 443 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 436 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 445 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


shmctl - управление общей памятью System V



ОБЗОР


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

int shmctl(int shmid, int cmd, struct shmid_ds *buf);



ОПИСАНИЕ


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

В аргументе buf содержится указатель на структуру shmid_ds, определённую в <sys/shm.h>
следующим образом:

struct shmid_ds {
struct ipc_perm shm_perm; /* владелец и права */
size_t shm_segsz; /* размер сегмента (байты) */
time_t shm_atime; /* время последнего подключения */
time_t shm_dtime; /* время последнего отключения */
time_t shm_ctime; /* время последнего изменения */
pid_t shm_cpid; /* PID создателя */
pid_t shm_lpid; /* PID последнего выполнявшего
shmat( ... Читать дальше »

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





ИМЯ


sgetmask, ssetmask - работа с маской сигналов (устарел)



ОБЗОР


long sgetmask(void);

long ssetmask(long newmask);

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



ОПИСАНИЕ


Данные системные вызовы устарели. Используйте вместо них sigprocmask(2).

Вызов sgetmask() возвращает маску сигналов вызывающего процесса.

Вызов ssetmask() устанавливает маску сигналов вызывающего процесса равной значению,
указанному в newmask. Возвращается предыдущее значение маски сигналов.

Маски сигналов обрабатываются этими системными вызовами как простые битовые маски (в отличие
от sigset_t, который используется в sigprocmask(2)); для создания и проверки масок
используйте sigmask(3).



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


Вызов sge ... Читать дальше »

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





ИМЯ


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() устанавливает зн ... Читать дальше »

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





ИМЯ


setup - настраивает устройства и файловые системы, монтирует корневую файловую систему



ОБЗОР


#include <unistd.h>

int setup(void);



ОПИСАНИЕ


setup() вызывается один раз из linux/init/main.c. Она вызывает функции инициализации
устройств и файловых систем, встроенных в ядро, и затем монтирует корневую файловую систему.

Ни один из пользовательских процессов не может вызвать setup(). Любой пользовательский
процесс даже с правами суперпользователя будет получать сообщение об ошибке с кодом EPERM.



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


Вызов setup() всегда возвращает пользовательскому процессу значение -1.



ОШИБКИ


EPERM Всегда для пользовательского процесса.



ВЕРСИИ


Начиная с Linux 2.1.121, эта функция не существует.

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

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





ИМЯ


setuid - устанавливает идентификатор пользователя



ОБЗОР


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

int setuid(uid_t uid);



ОПИСАНИЕ


Вызов setuid() устанавливает эффективный идентификатор пользователя вызвавшего процесса.
Если вызывающий процесс имеет права (мандат CAP_SETUID в своём пространстве имён
пользователя), то также устанавливаются действительный и сохраненный идентификаторы
пользователя.

В Linux setuid() реализован как и в стандарте POSIX с возможностью _POSIX_SAVED_IDS. Это
позволяет setuid-программам (не setuid-root) сбрасывать все привилегии, делать
непривилегированную работу, а затем безопасным путём возвращать себе исходный эффективный
идентификатор пользователя.

Если пользователь root или программа установлена как setuid root, при работе требуется
осо ... Читать дальше »

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





ИМЯ


setuid - устанавливает идентификатор пользователя



ОБЗОР


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

int setuid(uid_t uid);



ОПИСАНИЕ


Вызов setuid() устанавливает эффективный идентификатор пользователя вызвавшего процесса.
Если вызывающий процесс имеет права (мандат CAP_SETUID в своём пространстве имён
пользователя), то также устанавливаются действительный и сохраненный идентификаторы
пользователя.

В Linux setuid() реализован как и в стандарте POSIX с возможностью _POSIX_SAVED_IDS. Это
позволяет setuid-программам (не setuid-root) сбрасывать все привилегии, делать
непривилегированную работу, а затем безопасным путём возвращать себе исходный эффективный
идентификатор пользователя.

Если пользователь root или программа установлена как setuid root, при работе требуется
осо ... Читать дальше »

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





ИМЯ


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)). Аргумент ... Читать дальше »

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





ИМЯ


set_tid_address - устанавливает указатель идентификатора нити



ОБЗОР


#include <linux/unistd.h>

long set_tid_address(int *tidptr);

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



ОПИСАНИЕ


В ядре для каждой нити хранится два атрибута (адреса): set_child_tid и clear_child_tid. Их
значение по умолчанию равно NULL.

set_child_tid
Если нить запущена с помощью clone(2) с флагом CLONE_CHILD_SETTID, то значение
set_child_tid устанавливается равным аргументу системного вызова ctid.

Если set_child_tid присвоено значение, то самое первое действие, которое выполняется
для новой нити, это запись ID нити по этому адресу.

clear_child_tid
Если нить запущена с помощью clone(2) с флагом CLONE_CHILD_CLEARTID, то значение
clear ... Читать дальше »

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





ИМЯ


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

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





ИМЯ


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. Для работы с параметрами на любом другом уровне, ... Читать дальше »

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





ИМЯ


setsid - создает сеанс и устанавливает идентификатор группы процесса



ОБЗОР


#include <unistd.h>

pid_t setsid(void);



ОПИСАНИЕ


Вызов setsid() создаёт новый сеанс, если вызывающий процесс не является лидером группы
процессов. Вызывающий процесс становится лидером нового сеанса (то есть, его ID сеанса
становится равным ID самого процесса). Вызывающий процесс также становится лидером группы
процессов новой группы процессов в сеансе (то есть, его ID группы процессов становится
равным ID самого процесса).

Вызывающий процесс будет единственным в новой группе процессов и новом сеансе.

Изначально, новый сеанс не имеет управляющего терминала. О том, как сеанс получает
управляющий терминал, смотрите в credentials(7).



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


При успешном вы ... Читать дальше »

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





ИМЯ


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(). Адрес списка надёжных фьютексов нити можно получить с помощью
get_r ... Читать дальше »

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





ИМЯ


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; /* жёсткое ... Читать дальше »

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





ИМЯ


setreuid, setregid - устанавливает действительный и/или эффективный идентификатор
пользователя или группы



ОБЗОР


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

int setreuid(uid_t ruid, uid_t euid);
int setregid(gid_t rgid, gid_t egid);

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

setreuid(), setregid():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* версии glibc <= 2.19: */ _BSD_SOURCE



ОПИСАНИЕ


Вызов setreuid() устанавливает действительный и эффективный идентификатор пользователя
вызывающего процесса.

Если указываемое значение действительного или эффективного идентификатора пользователя равно
-1, то система не изменяет его.

Непривилегированные процессы могут изменять эффективный и ... Читать дальше »

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





ИМЯ


setreuid, setregid - устанавливает действительный и/или эффективный идентификатор
пользователя или группы



ОБЗОР


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

int setreuid(uid_t ruid, uid_t euid);
int setregid(gid_t rgid, gid_t egid);

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

setreuid(), setregid():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* версии glibc <= 2.19: */ _BSD_SOURCE



ОПИСАНИЕ


Вызов setreuid() устанавливает действительный и эффективный идентификатор пользователя
вызывающего процесса.

Если указываемое значение действительного или эффективного идентификатора пользователя равно
-1, то система не изменяет его.

Непривилегированные процессы могут изменять эффективный и ... Читать дальше »

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





ИМЯ


setresuid, setresgid - устанавливает реальный, эффективный и сохранённый пользовательский
идентификатор или идентификатор группы



ОБЗОР


#define _GNU_SOURCE /* смотрите feature_test_macros(7) */
#include <unistd.h>

int setresuid(uid_t ruid, uid_t euid, uid_t suid);
int setresgid(gid_t rgid, gid_t egid, gid_t sgid);



ОПИСАНИЕ


Вызов setresuid() устанавливает реальный идентификатор пользователя, эффективный
идентификатор пользователя и сохранённый идентификатор пользователя вызывающего процесса.

Непривилегированный процесс может изменять реальный UID, эффективный UID и сохранённый
set-user-ID на соответственно текущий реальный UID, текущий UID и текущий сохранённый
set-user-ID.

Привилегированный процесс (в Linux: имеющие мандат CAP_SETUID) могут устанавливать
произвольные з ... Читать дальше »

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





ИМЯ


setresuid, setresgid - устанавливает реальный, эффективный и сохранённый пользовательский
идентификатор или идентификатор группы



ОБЗОР


#define _GNU_SOURCE /* смотрите feature_test_macros(7) */
#include <unistd.h>

int setresuid(uid_t ruid, uid_t euid, uid_t suid);
int setresgid(gid_t rgid, gid_t egid, gid_t sgid);



ОПИСАНИЕ


Вызов setresuid() устанавливает реальный идентификатор пользователя, эффективный
идентификатор пользователя и сохранённый идентификатор пользователя вызывающего процесса.

Непривилегированный процесс может изменять реальный UID, эффективный UID и сохранённый
set-user-ID на соответственно текущий реальный UID, текущий UID и текущий сохранённый
set-user-ID.

Привилегированный процесс (в Linux: имеющие мандат CAP_SETUID) могут устанавливать
произвольные з ... Читать дальше »

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





ИМЯ


setresuid, setresgid - устанавливает реальный, эффективный и сохранённый пользовательский
идентификатор или идентификатор группы



ОБЗОР


#define _GNU_SOURCE /* смотрите feature_test_macros(7) */
#include <unistd.h>

int setresuid(uid_t ruid, uid_t euid, uid_t suid);
int setresgid(gid_t rgid, gid_t egid, gid_t sgid);



ОПИСАНИЕ


Вызов setresuid() устанавливает реальный идентификатор пользователя, эффективный
идентификатор пользователя и сохранённый идентификатор пользователя вызывающего процесса.

Непривилегированный процесс может изменять реальный UID, эффективный UID и сохранённый
set-user-ID на соответственно текущий реальный UID, текущий UID и текущий сохранённый
set-user-ID.

Привилегированный процесс (в Linux: имеющие мандат CAP_SETUID) могут устанавливать
произвольные з ... Читать дальше »

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





ИМЯ


setresuid, setresgid - устанавливает реальный, эффективный и сохранённый пользовательский
идентификатор или идентификатор группы



ОБЗОР


#define _GNU_SOURCE /* смотрите feature_test_macros(7) */
#include <unistd.h>

int setresuid(uid_t ruid, uid_t euid, uid_t suid);
int setresgid(gid_t rgid, gid_t egid, gid_t sgid);



ОПИСАНИЕ


Вызов setresuid() устанавливает реальный идентификатор пользователя, эффективный
идентификатор пользователя и сохранённый идентификатор пользователя вызывающего процесса.

Непривилегированный процесс может изменять реальный UID, эффективный UID и сохранённый
set-user-ID на соответственно текущий реальный UID, текущий UID и текущий сохранённый
set-user-ID.

Привилегированный процесс (в Linux: имеющие мандат CAP_SETUID) могут устанавливать
произвольные з ... Читать дальше »

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





ИМЯ


setreuid, setregid - устанавливает действительный и/или эффективный идентификатор
пользователя или группы



ОБЗОР


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

int setreuid(uid_t ruid, uid_t euid);
int setregid(gid_t rgid, gid_t egid);

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

setreuid(), setregid():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* версии glibc <= 2.19: */ _BSD_SOURCE



ОПИСАНИЕ


Вызов setreuid() устанавливает действительный и эффективный идентификатор пользователя
вызывающего процесса.

Если указываемое значение действительного или эффективного идентификатора пользователя равно
-1, то система не изменяет его.

Непривилегированные процессы могут изменять эффективный и ... Читать дальше »

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





ИМЯ


setreuid, setregid - устанавливает действительный и/или эффективный идентификатор
пользователя или группы



ОБЗОР


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

int setreuid(uid_t ruid, uid_t euid);
int setregid(gid_t rgid, gid_t egid);

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

setreuid(), setregid():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* версии glibc <= 2.19: */ _BSD_SOURCE



ОПИСАНИЕ


Вызов setreuid() устанавливает действительный и эффективный идентификатор пользователя
вызывающего процесса.

Если указываемое значение действительного или эффективного идентификатора пользователя равно
-1, то система не изменяет его.

Непривилегированные процессы могут изменять эффективный и ... Читать дальше »

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





ИМЯ


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

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





ИМЯ


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

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





ИМЯ


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

Просмотров: 440 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


setns - повторно связывает нить с пространством имён



ОБЗОР


#define _GNU_SOURCE /* Смотрите feature_test_macros(7) */
#include <sched.h>

int setns(int fd, int nstype);



ОПИСАНИЕ


Указанный файловый дескриптор, ссылающийся на пространство имён, повторно связывается
(reassociate) в вызвавшей нити с этим пространством имён.

Аргумент fd представляет собой файловый дескриптор, ссылающийся на одно из элементов
пространств имён в каталоге /proc/[pid]/ns/; подробней о /proc/[pid]/ns/ смотрите в
namespaces(7). Вызывающая нить будет повторно связана с соответствующим пространством имён с
учётом всех ограничений, устанавливаемых аргументом nstype.

В аргументе nstype указывается тип пространства имён, с которым вызывающая нить может быть
повторно связана. Данный аргумент может им ... Читать дальше »

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





ИМЯ


set_mempolicy - настраивает политику работы с памятью NUMA для потока и его потомков



ОБЗОР


#include <numaif.h>

long set_mempolicy(int mode, const unsigned long *nodemask,
unsigned long maxnode);

Компонуется при указании параметра -lnuma.



ОПИСАНИЕ


Вызов set_mempolicy() устанавливает политику работы с памятью NUMA для вызывающей нити,
которая определяется режимом политики и нулём или более узлами (задаются в аргументах mode,
nodemask и maxnode).

Машина с NUMA имеет различные контроллеры памяти с различными расстояниями до определённых
ЦП. Политикой памяти задаётся узел, на котором выделяется память для нити.

Этот системный вызов устанавливает в нити политику по умолчанию. Политика нити управляет
выделением страниц в адресном пространстве процесса из областей памяти, которые не ... Читать дальше »

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





ИМЯ


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 Этот таймер отсчитывается по реальному вре ... Читать дальше »

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





ИМЯ


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() устанавливает ... Читать дальше »

Просмотров: 435 | Добавил: Администратор | Дата: 24.11.2017 | Комментарии (0)





ИМЯ


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. Обычн ... Читать дальше »

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





ИМЯ


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 дополнительных групп, то возвращается ошибка. an err ... Читать дальше »

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





ИМЯ


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 дополнительных групп, то возвращается ошибка. an err ... Читать дальше »

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





ИМЯ


setgid - устанавливает идентификатор группы процесса



ОБЗОР


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

int setgid(gid_t gid);



ОПИСАНИЕ


Вызов setgid() устанавливает эффективный идентификатор группы вызвавшего процесса. Если
вызывающий процесс имеет права (мандат CAP_SETGID в своём пространстве имён пользователя),
то также устанавливаются действительный и сохраненный идентификаторы группы.

В Linux setgid() реализован так же, как в версии POSIX где есть возможность
_POSIX_SAVED_IDS. Это позволяет set-group-ID-программам (не являющимся программами
суперпользователя) сбросить привилегии группы, проделать непривилегированную работу и
безопасно вернуть исходный эффективный идентификатор группы.



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


При успешном выполнении возвращается 0 ... Читать дальше »

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





ИМЯ


setgid - устанавливает идентификатор группы процесса



ОБЗОР


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

int setgid(gid_t gid);



ОПИСАНИЕ


Вызов setgid() устанавливает эффективный идентификатор группы вызвавшего процесса. Если
вызывающий процесс имеет права (мандат CAP_SETGID в своём пространстве имён пользователя),
то также устанавливаются действительный и сохраненный идентификаторы группы.

В Linux setgid() реализован так же, как в версии POSIX где есть возможность
_POSIX_SAVED_IDS. Это позволяет set-group-ID-программам (не являющимся программами
суперпользователя) сбросить привилегии группы, проделать непривилегированную работу и
безопасно вернуть исходный эффективный идентификатор группы.



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


При успешном выполнении возвращается 0 ... Читать дальше »

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





ИМЯ


setfsuid - устанавливает идентификатор пользователя для доступа к файловой системе



ОБЗОР


#include <sys/fsuid.h>

int setfsuid(uid_t fsuid);



ОПИСАНИЕ


Системный вызов setfsuid() изменяет значение идентификатора пользователя файловой системы
вызывающего — идентификатор пользователя, который ядро Linux использует для проверки при
любом доступе к файловой системе. Обычно, значение идентификатора пользователя файловой
системы равно теневому значению эффективного идентификатора пользователя. Более того, при
изменении идентификатора эффективного идентификатора пользователя также изменяется и
идентификатор пользователя файловой системы на новое значение идентификатора эффективного
идентификатора пользователя.

Вызовы setfsuid() и setfsgid(2) обычно используются только в программах Linux тип ... Читать дальше »

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





ИМЯ


setfsuid - устанавливает идентификатор пользователя для доступа к файловой системе



ОБЗОР


#include <sys/fsuid.h>

int setfsuid(uid_t fsuid);



ОПИСАНИЕ


Системный вызов setfsuid() изменяет значение идентификатора пользователя файловой системы
вызывающего — идентификатор пользователя, который ядро Linux использует для проверки при
любом доступе к файловой системе. Обычно, значение идентификатора пользователя файловой
системы равно теневому значению эффективного идентификатора пользователя. Более того, при
изменении идентификатора эффективного идентификатора пользователя также изменяется и
идентификатор пользователя файловой системы на новое значение идентификатора эффективного
идентификатора пользователя.

Вызовы setfsuid() и setfsgid(2) обычно используются только в программах Linux тип ... Читать дальше »

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





ИМЯ


setfsgid - устанавливает идентификатор группы для доступа к файловой системе



ОБЗОР


#include <sys/fsuid.h>

int setfsgid(uid_t fsgid);



ОПИСАНИЕ


Системный вызов setfsgid() изменяет значение идентификатора группы файловой системы
вызывающего — идентификатор группы, который ядро Linux использует для проверки при любом
доступе к файловой системе. Обычно, значение идентификатора группы файловой системы равно
теневому значению идентификатора эффективной группы. Более того, при изменении
идентификатора эффективной группы также изменяется и идентификатор группы файловой системы
на новое значение идентификатора эффективной группы.

Вызовы setfsuid(2) и setfsgid() обычно используются только в программах Linux типа
NFS-сервера, которым требуется изменить идентификатор пользователя и группы для ... Читать дальше »

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





ИМЯ


setfsgid - устанавливает идентификатор группы для доступа к файловой системе



ОБЗОР


#include <sys/fsuid.h>

int setfsgid(uid_t fsgid);



ОПИСАНИЕ


Системный вызов setfsgid() изменяет значение идентификатора группы файловой системы
вызывающего — идентификатор группы, который ядро Linux использует для проверки при любом
доступе к файловой системе. Обычно, значение идентификатора группы файловой системы равно
теневому значению идентификатора эффективной группы. Более того, при изменении
идентификатора эффективной группы также изменяется и идентификатор группы файловой системы
на новое значение идентификатора эффективной группы.

Вызовы setfsuid(2) и setfsgid() обычно используются только в программах Linux типа
NFS-сервера, которым требуется изменить идентификатор пользователя и группы для ... Читать дальше »

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





ИМЯ


seteuid, setegid - устанавливает эффективный идентификатор пользователя или группы



ОБЗОР


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

int seteuid(uid_t euid);
int setegid(gid_t egid);

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

seteuid(), setegid():
_POSIX_C_SOURCE >= 200112L
|| /* версии glibc <= 2.19: */ _BSD_SOURCE



ОПИСАНИЕ


Вызов seteuid() устанавливает эффективный идентификатор пользователя вызывающего процесса.
Непривилегированные процессы могут менять эффективный идентификатор пользователя только на
действительный, эффективный или сохранённый идентификатор пользователя.

Тоже самое справедливо при работе setegid() с «групповым» идентификатором, а не
«пользовательским».



ВОЗВРАЩАЕМОЕ ЗНАЧЕ ... Читать дальше »

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





ИМЯ


seteuid, setegid - устанавливает эффективный идентификатор пользователя или группы



ОБЗОР


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

int seteuid(uid_t euid);
int setegid(gid_t egid);

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

seteuid(), setegid():
_POSIX_C_SOURCE >= 200112L
|| /* версии glibc <= 2.19: */ _BSD_SOURCE



ОПИСАНИЕ


Вызов seteuid() устанавливает эффективный идентификатор пользователя вызывающего процесса.
Непривилегированные процессы могут менять эффективный идентификатор пользователя только на
действительный, эффективный или сохранённый идентификатор пользователя.

Тоже самое справедливо при работе setegid() с «групповым» идентификатором, а не
«пользовательским».



ВОЗВРАЩАЕМОЕ ЗНАЧЕ ... Читать дальше »

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