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





ИМЯ


getdomainname, setdomainname - получить/установить имя домена NIS



ОБЗОР


#include <unistd.h>

int getdomainname(char *name, size_t len);
int setdomainname(const char *name, size_t len);

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

getdomainname(), setdomainname():
начиная с 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)



ОПИСАНИЕ


Эти функции используются для доступа к имени узла домена NIS или для его
изменения.

setdomainname() изменяет доменное имя на значение, указанное в массиве символов
name. В аргументе len задаётся количество байт в name. (То есть name ... Читать дальше »

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





ИМЯ


getcontext, setcontext - получить или установить пользовательский контекст



ОБЗОР


#include <ucontext.h>

int getcontext(ucontext_t *ucp);
int setcontext(const ucontext_t *ucp);



ОПИСАНИЕ


В окружении, подобном SysV, существует два типа данных —mcontext_t и ucontext_t,
которые определены в файле <ucontext.h> и четыре функции — getcontext(),
setcontext(), makecontext(3) и swapcontext(3), которые позволяют контексту
пользовательского уровня переключаться между несколькими нитями внутри одного
процесса.

Тип mcontext_t является машинно-зависимым и примитивным типом данных. Тип
ucontext_t является структурой, которая по крайней мере имеет следующие поля:

typedef struct ucontext_t {
struct ucontext_t *uc_link;
sigset_t uc_sigmask;
stack_t uc_stack;
mcont ... Читать дальше »

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





ИМЯ


send, sendto, sendmsg - отправляет сообщения в сокет



ОБЗОР


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

ssize_t send(int sockfd, const void *buf, size_t len, int flags);

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);

ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);



ОПИСАНИЕ


Системные вызовы send(), sendto() и sendmsg() используются для пересылки сообщений
в другой сокет.

Вызов send() можно использовать, только если сокет находится в состоянии
соединения (то есть известен получатель). Вызов send() отличается от write(2)
только наличием аргумента flags. Если значение flags равно нулю, то вызов send()
эквивалентен write(2). Также, вызов

send(sockfd, buf, ... Читать дальше »

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





ИМЯ


send, sendto, sendmsg - отправляет сообщения в сокет



ОБЗОР


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

ssize_t send(int sockfd, const void *buf, size_t len, int flags);

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);

ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);



ОПИСАНИЕ


Системные вызовы send(), sendto() и sendmsg() используются для пересылки сообщений
в другой сокет.

Вызов send() можно использовать, только если сокет находится в состоянии
соединения (то есть известен получатель). Вызов send() отличается от write(2)
только наличием аргумента flags. Если значение flags равно нулю, то вызов send()
эквивалентен write(2). Также, вызов

send(sockfd, buf, ... Читать дальше »

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





ИМЯ


sendmmsg - отправляет несколько сообщений в сокет



ОБЗОР


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

int sendmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
unsigned int flags);



ОПИСАНИЕ


Системный вызов sendmmsg() является расширенной версией sendmsg(2), позволяя
вызывающему передавать несколько сообщений из сокета, используя только один
системный вызов (в некоторых приложениях это позволяет получить выигрыш в
производительности).

Аргумент sockfd представляет собой файловый дескриптор сокета для отправки данных.

Аргумент msgvec является указателем на массив структур mmsghdr. Размер этого
массива указывается в vlen.

Структура mmsghdr определена в <sys/socket.h> следующим образом:

struct mmsghdr { ... Читать дальше »

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





ИМЯ


sendfile - производит обмен данными между дескрипторами файлов



ОБЗОР


#include <sys/sendfile.h>

ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);



ОПИСАНИЕ


Вызов sendfile() копирует данные из одного файлового дескриптора в другой. Так как
копирование производится в ядре, использование sendfile() более эффективно чем
комбинация read(2) и write(2), в которой требуется скопировать данные в и из
пользовательского пространства.

В in_fd должен указываться файловый дескриптор, открытый для чтения, а в out_fd
должен указываться файловый дескриптор, открытый для записи.

Если значение offset не равно NULL, то оно указывает на переменную, содержащую
файловое смещение с которого sendfile() начнёт чтение данных из in_fd. При
завершении sendfile() значение этой ... Читать дальше »

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





ИМЯ


sendfile - производит обмен данными между дескрипторами файлов



ОБЗОР


#include <sys/sendfile.h>

ssize_t sendfile(int out_fd, int in_fd, off_t *offset, size_t count);



ОПИСАНИЕ


Вызов sendfile() копирует данные из одного файлового дескриптора в другой. Так как
копирование производится в ядре, использование sendfile() более эффективно чем
комбинация read(2) и write(2), в которой требуется скопировать данные в и из
пользовательского пространства.

В in_fd должен указываться файловый дескриптор, открытый для чтения, а в out_fd
должен указываться файловый дескриптор, открытый для записи.

Если значение offset не равно NULL, то оно указывает на переменную, содержащую
файловое смещение с которого sendfile() начнёт чтение данных из in_fd. При
завершении sendfile() значение этой ... Читать дальше »

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





ИМЯ


send, sendto, sendmsg - отправляет сообщения в сокет



ОБЗОР


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

ssize_t send(int sockfd, const void *buf, size_t len, int flags);

ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,
const struct sockaddr *dest_addr, socklen_t addrlen);

ssize_t sendmsg(int sockfd, const struct msghdr *msg, int flags);



ОПИСАНИЕ


Системные вызовы send(), sendto() и sendmsg() используются для пересылки сообщений
в другой сокет.

Вызов send() можно использовать, только если сокет находится в состоянии
соединения (то есть известен получатель). Вызов send() отличается от write(2)
только наличием аргумента flags. Если значение flags равно нулю, то вызов send()
эквивалентен write(2). Также, вызов

send(sockfd, buf, ... Читать дальше »

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





ИМЯ


semop, semtimedop - операции с семафорами System V



ОБЗОР


#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>

int semop(int semid, struct sembuf *sops, size_t nsops);

int semtimedop(int semid, struct sembuf *sops, size_t nsops,
const struct timespec *timeout);

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

semtimedop(): _GNU_SOURCE



ОПИСАНИЕ


С каждым семафором в наборе семафоров System V связаны следующие значения:

unsigned short semval; /* значение семафора */
unsigned short semzcnt; /* # ожидает ноль */
unsigned short semncnt; /* # ожидает увеличения */
pid_t sempid; /* PID процесса, выполнявшегося последним

Вызов semop() производит операции над выбранными семафорами из набора семафоров
... Читать дальше »

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





ИМЯ


semop, semtimedop - операции с семафорами System V



ОБЗОР


#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>

int semop(int semid, struct sembuf *sops, size_t nsops);

int semtimedop(int semid, struct sembuf *sops, size_t nsops,
const struct timespec *timeout);

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

semtimedop(): _GNU_SOURCE



ОПИСАНИЕ


С каждым семафором в наборе семафоров System V связаны следующие значения:

unsigned short semval; /* значение семафора */
unsigned short semzcnt; /* # ожидает ноль */
unsigned short semncnt; /* # ожидает увеличения */
pid_t sempid; /* PID процесса, выполнявшегося последним

Вызов semop() производит операции над выбранными семафорами из набора семафоров
... Читать дальше »

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





ИМЯ


semget - считывает идентификатор набора семафоров System V



ОБЗОР


#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>

int semget(key_t key, int nsems, int semflg);



ОПИСАНИЕ


Системный вызов semget() возвращает идентификатор набора семафоров System V,
связанный с аргументом key. Если значение key равно IPC_PRIVATE или с ключом key
не связано ни одного существующего набора семафора, а в semflg задано IPC_CREAT,
создаётся новый набор из nsems семафоров.

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

При создании в 9 начальных битах аргумента semflg указываются права (владел ... Читать дальше »

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





ИМЯ


semctl - операции управления семафорами System V



ОБЗОР


#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>

int semctl(int semid, int semnum, int cmd, ...);



ОПИСАНИЕ


Вызов semctl выполняет операцию, определённую в cmd, над набором семафоров
System V, указанном в semid, или над семафором с номером semnum из этого набора
(семафоры нумеруются, начиная с 0).

Данный вызов имеет три или четыре аргумента, в зависимости от значения cmd. Если
аргументов четыре, то четвертый аргумент arg имеет тип union semun. В вызывающей
программе это объединение должно быть определено следующим образом:

union semun {
int val; /* значение для SETVAL */
struct semid_ds *buf; /* буфер для IPC_STAT, IPC_SET */
unsigned short *array; /* массив для GETALL, SETALL */
st ... Читать дальше »

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





ИМЯ


select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - многопоточный синхронный
ввод-вывод



ОБЗОР


/* в соответствии с POSIX.1-2001, POSIX.1-2008 */
#include <sys/select.h>

/* в соответствии с ранними стандартами */
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *utimeout);

void FD_CLR(int fd, fd_set *set);
int FD_ISSET(int fd, fd_set *set);
void FD_SET(int fd, fd_set *set);
void FD_ZERO(fd_set *set);

#include <sys/select.h>

int pselect(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, const struct timespec *ntimeout,
const sigset_t *sigmask);

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

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





ИМЯ


select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - многопоточный синхронный
ввод-вывод



ОБЗОР


/* в соответствии с POSIX.1-2001, POSIX.1-2008 */
#include <sys/select.h>

/* в соответствии с ранними стандартами */
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout);

void FD_CLR(int fd, fd_set *set);
int FD_ISSET(int fd, fd_set *set);
void FD_SET(int fd, fd_set *set);
void FD_ZERO(fd_set *set);

#include <sys/select.h>

int pselect(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, const struct timespec *timeout,
const sigset_t *sigmask);

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

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





ИМЯ


seccomp - переводит процесс в состояние безопасных вычислений



ОБЗОР


#include <linux/seccomp.h>
#include <linux/filter.h>
#include <linux/audit.h>
#include <linux/signal.h>
#include <sys/ptrace.h>

int seccomp(unsigned int operation, unsigned int flags, void *args);



ОПИСАНИЕ


Системный вызов seccomp() переводит вызвавший процесс в состояние безопасных
вычислений (Secure Computing, seccomp).

В настоящее время в Linux поддерживаются следующие значения operation:

SECCOMP_SET_MODE_STRICT
Вызвавшей нити доступны только системные вызовы read(2), write(2), _exit(2)
(но не exit_group(2)) и sigreturn(2). При запуске других системных вызовов
генерируется сигнал SIGKILL. Строгий режим безопасных вычислений полезен
для вычи ... Читать дальше »

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





ИМЯ


sched_yield - освободить процессор



ОБЗОР


#include <sched.h>

int sched_yield(void);



ОПИСАНИЕ


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



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


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



ОШИБКИ


В Linux-реализации sched_yield() всегда завершается успешно.



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


POSIX.1-2001, POSIX.1-2008.



ЗАМЕЧАНИЯ


Если вызывающая нить единственная в списке с самым высоким приоритетом, то она
продолжит выполняться после вызов ... Читать дальше »

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





ИМЯ


sched_setscheduler, sched_getscheduler - устанавливает или получает алгоритм
планирования (и его параметры)



ОБЗОР


#include <sched.h>

int sched_setscheduler(pid_t pid, int policy,
const struct sched_param *param);

int sched_getscheduler(pid_t pid);



ОПИСАНИЕ


Вызов sched_setscheduler() задаёт алгоритм и параметры планирования выполнения
нити с идентификатором pid. Если pid равен нулю, то будет изменён алгоритм и
параметры планирования вызывающей нити.

Параметры планирования указываются в аргументе param, который является указателем
на следующую структуру:

struct sched_param {
...
int sched_priority;
...
};

В текущей реализации структура содержит только одно поле — sched_priority.
Интерпретация param зависит от выбранного алгоритма.

В настояще ... Читать дальше »

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





ИМЯ


sched_setparam, sched_getparam - получает и устанавливает параметры планирования



ОБЗОР


#include <sched.h>

int sched_setparam(pid_t pid, const struct sched_param *param);

int sched_getparam(pid_t pid, struct sched_param *param);

struct sched_param {
...
int sched_priority;
...
};



ОПИСАНИЕ


Вызов sched_setparam() устанавливает параметры планирования процесса с
идентификатором pid в соответствии с его политикой планирования. Если pid равен
нулю, то устанавливаются параметры вызывающего процесса. Тип и значение аргумента
param зависит от политики планирования, назначенной процессу с идентификатором
pid. Описание алгоритмов планирования, поддерживаемых в Linux, смотрите в
sched(7).

Вызов sched_getparam() получает текущие параметры планирования процесса с pid ... Читать дальше »

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





ИМЯ


sched_setattr, sched_getattr - назначает и возвращает алгоритм планирования и
атрибуты



ОБЗОР


#include <sched.h>

int sched_setattr(pid_t pid, struct sched_attr *attr,
unsigned int flags);

int sched_getattr(pid_t pid, struct sched_attr *attr,
unsigned int size, unsigned int flags);



ОПИСАНИЕ


sched_setattr()
Системный вызов sched_setattr() задаёт алгоритм планирования и соответствующие
атрибуты для нити с идентификатором pid. Если pid равно нулю, то будет изменён
алгоритм и атрибуты планирования вызывающей нити.

В настоящее время в Linux поддерживаются следующие «обычные» (т. е. не реального
времени) алгоритмы планирования, которые можно указать в policy:

SCHED_OTHER алгоритм циклического обслуживания с разделением времени;

SCHED_BATCH «пакетный» стиль выполнения ... Читать дальше »

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





ИМЯ


sched_setaffinity, sched_getaffinity - устанавливает и получает процессорную маску
увязывания для нити



ОБЗОР


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

int sched_setaffinity(pid_t pid, size_t cpusetsize,
const cpu_set_t *mask);

int sched_getaffinity(pid_t pid, size_t cpusetsize,
cpu_set_t *mask);



ОПИСАНИЕ


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

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





ИМЯ


sched_rr_get_interval - определяет временной интервал SCHED_RR для заданного
процесса



ОБЗОР


#include <sched.h>

int sched_rr_get_interval(pid_t pid, struct timespec *tp);



ОПИСАНИЕ


Вызов sched_rr_get_interval() записывает циклический квант времени процесса pid в
структуру timespec, на которую указывает tp. Указанный процесс должен запускаться
с политикой выполнения SCHED_RR.

Структура timespec описана следующим образом:

struct timespec {
time_t tv_sec; /* секунды */
long tv_nsec; /* наносекунды */
};

Если значение pid равно нулю, то в *tp записывается квант времени вызывающего
процесса.



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


При успешном выполнении sched_rr_get_interval() возвращается 0. При ошибке
возвращается -1, а значение errno устанавливается ... Читать дальше »

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





ИМЯ


sched_setscheduler, sched_getscheduler - устанавливает или получает алгоритм
планирования (и его параметры)



ОБЗОР


#include <sched.h>

int sched_setscheduler(pid_t pid, int policy,
const struct sched_param *param);

int sched_getscheduler(pid_t pid);



ОПИСАНИЕ


Вызов sched_setscheduler() задаёт алгоритм и параметры планирования выполнения
нити с идентификатором pid. Если pid равен нулю, то будет изменён алгоритм и
параметры планирования вызывающей нити.

Параметры планирования указываются в аргументе param, который является указателем
на следующую структуру:

struct sched_param {
...
int sched_priority;
...
};

В текущей реализации структура содержит только одно поле — sched_priority.
Интерпретация param зависит от выбранного алгоритма.

В настояще ... Читать дальше »

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





ИМЯ


sched_get_priority_max, sched_get_priority_min - возвращают статический диапазон
приоритетов



ОБЗОР


#include <sched.h>

int sched_get_priority_max(int policy);

int sched_get_priority_min(int policy);



ОПИСАНИЕ


Вызов sched_get_priority_max() возвращает максимальное значение приоритета,
которое может использоваться с алгоритмом планирования, указанного в policy. Вызов
sched_get_priority_min() возвращает минимальное значение приоритета, которое может
использоваться с алгоритмом планирования, указанного в policy. Поддерживаемые
значения для policy: SCHED_FIFO, SCHED_RR, SCHED_OTHER, SCHED_BATCH, SCHED_IDLE и
SCHED_DEADLINE. Подробней об этих политиках смотрите в sched(7).

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

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





ИМЯ


sched_get_priority_max, sched_get_priority_min - возвращают статический диапазон
приоритетов



ОБЗОР


#include <sched.h>

int sched_get_priority_max(int policy);

int sched_get_priority_min(int policy);



ОПИСАНИЕ


Вызов sched_get_priority_max() возвращает максимальное значение приоритета,
которое может использоваться с алгоритмом планирования, указанного в policy. Вызов
sched_get_priority_min() возвращает минимальное значение приоритета, которое может
использоваться с алгоритмом планирования, указанного в policy. Поддерживаемые
значения для policy: SCHED_FIFO, SCHED_RR, SCHED_OTHER, SCHED_BATCH, SCHED_IDLE и
SCHED_DEADLINE. Подробней об этих политиках смотрите в sched(7).

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

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





ИМЯ


sched_setparam, sched_getparam - получает и устанавливает параметры планирования



ОБЗОР


#include <sched.h>

int sched_setparam(pid_t pid, const struct sched_param *param);

int sched_getparam(pid_t pid, struct sched_param *param);

struct sched_param {
...
int sched_priority;
...
};



ОПИСАНИЕ


Вызов sched_setparam() устанавливает параметры планирования процесса с
идентификатором pid в соответствии с его политикой планирования. Если pid равен
нулю, то устанавливаются параметры вызывающего процесса. Тип и значение аргумента
param зависит от политики планирования, назначенной процессу с идентификатором
pid. Описание алгоритмов планирования, поддерживаемых в Linux, смотрите в
sched(7).

Вызов sched_getparam() получает текущие параметры планирования процесса с pid ... Читать дальше »

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





ИМЯ


sched_setattr, sched_getattr - назначает и возвращает алгоритм планирования и
атрибуты



ОБЗОР


#include <sched.h>

int sched_setattr(pid_t pid, struct sched_attr *attr,
unsigned int flags);

int sched_getattr(pid_t pid, struct sched_attr *attr,
unsigned int size, unsigned int flags);



ОПИСАНИЕ


sched_setattr()
Системный вызов sched_setattr() задаёт алгоритм планирования и соответствующие
атрибуты для нити с идентификатором pid. Если pid равно нулю, то будет изменён
алгоритм и атрибуты планирования вызывающей нити.

В настоящее время в Linux поддерживаются следующие «обычные» (т. е. не реального
времени) алгоритмы планирования, которые можно указать в policy:

SCHED_OTHER алгоритм циклического обслуживания с разделением времени;

SCHED_BATCH «пакетный» стиль выполнения ... Читать дальше »

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





ИМЯ


sched_setaffinity, sched_getaffinity - устанавливает и получает процессорную маску
увязывания для нити



ОБЗОР


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

int sched_setaffinity(pid_t pid, size_t cpusetsize,
const cpu_set_t *mask);

int sched_getaffinity(pid_t pid, size_t cpusetsize,
cpu_set_t *mask);



ОПИСАНИЕ


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

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





ИМЯ


brk, sbrk - изменяет размер сегмента данных



ОБЗОР


#include <unistd.h>

int brk(void *addr);

void *sbrk(intptr_t increment);

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

brk(), sbrk():
Начиная с glibc 2.19:
_DEFAULT_SOURCE ||
(_XOPEN_SOURCE >= 500) &&
! (_POSIX_C_SOURCE >= 200112L)
В glibc с 2.12 по 2.19:
_BSD_SOURCE || _SVID_SOURCE ||
(_XOPEN_SOURCE >= 500) &&
! (_POSIX_C_SOURCE >= 200112L)
До glibc 2.12:
_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 500



ОПИСАНИЕ


Вызов brk() и sbrk() изменяет расположение маркера окончания программы (program
break), который определяет конец сегмента данных процесса (т.е., маркер окончания
— это первая точка после конца сегмента неинициализир ... Читать дальше »

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





ИМЯ


s390_runtime_instr - включает/выключает технические средства ЦП s390 времени
выполнения



ОБЗОР


#include <asm/runtime_instr.h>

int s390_runtime_instr(int command, int signum);



ОПИСАНИЕ


Системный вызов s390_runtime_instr() запускает или останавливает технические
средства ЦП времени выполнения для вызывающей нити.

В аргументе command указывается, что технические средства времени выполнения нужно
запустить (S390_RUNTIME_INSTR_START, 1) или остановить (S390_RUNTIME_INSTR_STOP,
2) для вызывающей нити.

В аргументе signum задаётся номер сигнала реального времени. Сигнал реального
времени посылается нити, если буфер технических средств времени выполнения
заполнился или произошло прерывание run-time-instrumentation-halted.



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


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

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





ИМЯ


s390_pci_mmio_write, s390_pci_mmio_read - обмен данными со страницей памяти PCI
MMIO



ОБЗОР


#include <asm/unistd.h>

int s390_pci_mmio_write(unsigned long mmio_addr,
void *user_buffer, size_t length);
int s390_pci_mmio_read(unsigned long mmio_addr,
void *user_buffer, size_t length);



ОПИСАНИЕ


Системный вызов s390_pci_mmio_write() записывает length байт данных из буфера
user_buffer пользовательского пространства в память PCI MMIO по адресу, указанному
в mmio_addr. Системный вызов s390_pci_mmio_read() читает length байт данных
начиная с адреса mmio_addr в памяти PCI MMIO и записывает их в буфер
пользовательского пространства user_buffer.

Данные системные вызовы должны использоваться вместо простых операций назначения
данных, используемых для доступа к областям памяти PCI MMIO, от ... Читать дальше »

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





ИМЯ


s390_pci_mmio_write, s390_pci_mmio_read - обмен данными со страницей памяти PCI
MMIO



ОБЗОР


#include <asm/unistd.h>

int s390_pci_mmio_write(unsigned long mmio_addr,
void *user_buffer, size_t length);
int s390_pci_mmio_read(unsigned long mmio_addr,
void *user_buffer, size_t length);



ОПИСАНИЕ


Системный вызов s390_pci_mmio_write() записывает length байт данных из буфера
user_buffer пользовательского пространства в память PCI MMIO по адресу, указанному
в mmio_addr. Системный вызов s390_pci_mmio_read() читает length байт данных
начиная с адреса mmio_addr в памяти PCI MMIO и записывает их в буфер
пользовательского пространства user_buffer.

Данные системные вызовы должны использоваться вместо простых операций назначения
данных, используемых для доступа к областям памяти PCI MMIO, от ... Читать дальше »

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





ИМЯ


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



ОБЗОР


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

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

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



ОПИСАНИЕ


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

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

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

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





ИМЯ


sigsuspend, rt_sigsuspend - ожидание сигнала



ОБЗОР


#include <signal.h>

int sigsuspend(const sigset_t *mask);

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

sigsuspend(): _POSIX_C_SOURCE



ОПИСАНИЕ


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

Если по сигналу процесс завершается, то вызов sigsuspend() не возвращает
управление обратно в программу. Если сигнал пойман, то возврат из sigsuspend()
произойдёт после завершения выполнения обработчика, и маска сигналов восстановится
в значение, которое было до вызова sigsuspend().

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

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





ИМЯ


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



ОБЗОР


int sigreturn(...);



ОПИСАНИЕ


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

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

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





ИМЯ


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



ОБЗОР


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

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

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



ОПИСАНИЕ


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

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

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

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





ИМЯ


sigprocmask, rt_sigprocmask - проверка и изменение блокировки сигналов



ОБЗОР


#include <signal.h>

/* Прототип обёрточной функции glibc */
int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);

/* Прототип используемого системного вызова */
int rt_sigprocmask(int how, const kernel_sigset_t *set,
kernel_sigset_t *oldset, size_t sigsetsize);

/* Прототип устаревшего системного вызова */
int sigprocmask(int how, const old_kernel_sigset_t *set,
old_kernel_sigset_t *oldset);

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

sigprocmask(): _POSIX_C_SOURCE



ОПИСАНИЕ


Вызов sigprocmask() используется для выборки и/или изменения маски сигналов
вызывающей нити. Маска сигналов представляет собой набор сигналов, чья доставка в
на ... Читать дальше »

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





ИМЯ


sigpending, rt_sigpending - проверка ожидающих сигналов



ОБЗОР


#include <signal.h>

int sigpending(sigset_t *set);

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

sigpending(): _POSIX_C_SOURCE



ОПИСАНИЕ


Вызов sigpending() возвращает набор сигналов, которые ожидают доставки в вызвавшую
нить (т.е., сигналы, возникшие пока были заблокированы). Маска ожидающих сигналов
возвращается в set.



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


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



ОШИБКИ


EFAULT Аргумент set указывает на память в недопустимой части адресуемого
пространства.



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


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

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





ИМЯ


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



ОБЗОР


#include <signal.h>

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

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

sigaction(): _POSIX_C_SOURCE

siginfo_t: _POSIX_C_SOURCE >= 199309L



ОПИСАНИЕ


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

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

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

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





ИМЯ


rmdir - удалить каталог



ОБЗОР


#include <unistd.h>

int rmdir(const char *pathname);



ОПИСАНИЕ


rmdir() удаляет каталог, который должен быть пуст.



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


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



ОШИБКИ


EACCES Нет прав на запись в каталог, содержащийся в pathname, или в одном из
каталогов в pathname не разрешён поиск (см. также path_resolution(7)).

EBUSY В данный момент pathname используется системой или одним из процессов, что
предотвращает удаление. В Linux это означает, что pathname используется в
качестве точки монтирования или является корневым каталогом вызвавшего
процесса.

EFAULT Аргумент pathname указывает ... Читать дальше »

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





ИМЯ


restart_syscall - перезапускает системный вызов после прерывания сигналом останова



ОБЗОР


int restart_syscall(void);

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



ОПИСАНИЕ


Системный вызов restart_syscall() предназначен для перезапуска некоторых системных
вызовов после того, как процесс, остановленный сигналом (например, SIGSTOP или
SIGTSTP), продолжил выполнение после получения сигнала SIGCONT. Этот системный
вызов создан только для внутреннего использования ядром.

Вызов restart_syscall() используется только для тех системных вызовов, которые при
перезапуске должны обновить свои параметры, относящиеся к времени, а именно —
poll(2) (начиная с Linux 2.6.24), nanosleep(2) (начиная с Linux 2.6),
clock_nanosleep(2) (начиная с L ... Читать дальше »

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





ИМЯ


request_key - запрашивает ключ из системы управления ключами ядра



ОБЗОР


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

key_serial_t request_key(const char *type, const char *description,
const char *callout_info,
key_serial_t dest_keyring);

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



ОПИСАНИЕ


Системный вызов request_key() пытается найти ключ заданного type с описанием
(именем), совпадающим с description. Если ключ найти невозможно, то ключ может
быть создан. Если ключ найден или создан, то request_key() присоединяет его к
связке ключей, чей идентификатор указан keyring, и возвращает серийный номер
ключа.

Сначала request_key() выполняет рекурсивный поиск совпадающего ключа во всех
связках ключей, присоединённых к вызвавшему процес ... Читать дальше »

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





ИМЯ


rename, renameat, renameat2 - изменяет имя или расположение файла



ОБЗОР


#include <stdio.h>

int rename(const char *oldpath, const char *newpath);

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

int renameat(int olddirfd, const char *oldpath,
int newdirfd, const char *newpath);

int renameat2(int olddirfd, const char *oldpath,
int newdirfd, const char *newpath, unsigned int flags);

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

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

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



ОПИСАНИЕ


Вызов rename() переименовывает файл и, если требуется, перемещает ег ... Читать дальше »

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





ИМЯ


rename, renameat, renameat2 - изменяет имя или расположение файла



ОБЗОР


#include <stdio.h>

int rename(const char *oldpath, const char *newpath);

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

int renameat(int olddirfd, const char *oldpath,
int newdirfd, const char *newpath);

int renameat2(int olddirfd, const char *oldpath,
int newdirfd, const char *newpath, unsigned int flags);

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

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

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



ОПИСАНИЕ


Вызов rename() переименовывает файл и, если требуется, перемещает ег ... Читать дальше »

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





ИМЯ


rename, renameat, renameat2 - изменяет имя или расположение файла



ОБЗОР


#include <stdio.h>

int rename(const char *oldpath, const char *newpath);

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

int renameat(int olddirfd, const char *oldpath,
int newdirfd, const char *newpath);

int renameat2(int olddirfd, const char *oldpath,
int newdirfd, const char *newpath, unsigned int flags);

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

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

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



ОПИСАНИЕ


Вызов rename() переименовывает файл и, если требуется, перемещает ег ... Читать дальше »

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





ИМЯ


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

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





ИМЯ


remap_file_pages - создаёт нелинейное файловое отображение



ОБЗОР


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

int remap_file_pages(void *addr, size_t size, int prot,
size_t pgoff, int flags);



ОПИСАНИЕ


Замечание: данный системный вызов, начиная с Linux 3.16, устарел. В Linux 4.0
реализация была заменена на более медленную эмуляцию ядром. В приложениях, где он
используется, нужно применять альтернативные вызовы. Данное изменение было сделано
из-за сложности кода ядра этого системного вызова, и считается, что им почти никто
или вообще никто не пользуется. Какое-то время он использовался в приложениях баз
данных на 32-разрядных системах, но этих вариантов использования на 64-разрядных
системах замечено не было.

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

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





ИМЯ


recv, recvfrom, recvmsg - принимает сообщение из сокета



ОБЗОР


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

ssize_t recv(int sockfd, void *buf, size_t len, int flags);

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen);

ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);



ОПИСАНИЕ


Системные вызовы recv(), recvfrom() и recvmsg() используются для получения
сообщений из сокета. Они могут использоваться для получения данных, независимо от
того, является ли сокет ориентированным на соединения или нет. В этой странице
сперва описаны общие свойства всех трёх системных вызовов, а затем описываются
различия между ними.

Вызов recv() отличается от read(2) только наличием аргумента flags. Если значение ... Читать дальше »

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





ИМЯ


recvmmsg - получает несколько сообщений из сокета



ОБЗОР


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

int recvmmsg(int sockfd, struct mmsghdr *msgvec, unsigned int vlen,
unsigned int flags, struct timespec *timeout);



ОПИСАНИЕ


Системный вызов recvmmsg() является расширенной версией recvmsg(2), позволяя
вызывающему получать несколько сообщений из сокета, используя только один
системный вызов (в некоторых приложениях это позволяет получить выигрыш в
производительности). Ещё одно улучшение recvmsg(2) — настройка времени ожидания
для операции получения.

Аргумент sockfd представляет собой файловый дескриптор сокета приёма данных.

Аргумент msgvec является указателем на массив структур mmsghdr. Размер этого
массива указывается ... Читать дальше »

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





ИМЯ


recv, recvfrom, recvmsg - принимает сообщение из сокета



ОБЗОР


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

ssize_t recv(int sockfd, void *buf, size_t len, int flags);

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen);

ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);



ОПИСАНИЕ


Системные вызовы recv(), recvfrom() и recvmsg() используются для получения
сообщений из сокета. Они могут использоваться для получения данных, независимо от
того, является ли сокет ориентированным на соединения или нет. В этой странице
сперва описаны общие свойства всех трёх системных вызовов, а затем описываются
различия между ними.

Вызов recv() отличается от read(2) только наличием аргумента flags. Если значение ... Читать дальше »

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





ИМЯ


recv, recvfrom, recvmsg - принимает сообщение из сокета



ОБЗОР


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

ssize_t recv(int sockfd, void *buf, size_t len, int flags);

ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
struct sockaddr *src_addr, socklen_t *addrlen);

ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);



ОПИСАНИЕ


Системные вызовы recv(), recvfrom() и recvmsg() используются для получения
сообщений из сокета. Они могут использоваться для получения данных, независимо от
того, является ли сокет ориентированным на соединения или нет. В этой странице
сперва описаны общие свойства всех трёх системных вызовов, а затем описываются
различия между ними.

Вызов recv() отличается от read(2) только наличием аргумента flags. Если значение ... Читать дальше »

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





ИМЯ


reboot - перезагружает систему и разрешает/запрещает использование комбинации
Ctrl-Alt-Del



ОБЗОР


/* Начиная с версии ядра 2.1.30 появились символьные имена LINUX_REBOOT_*
для констант и четвёртый аргумент вызова: */

#include <unistd.h>
#include <linux/reboot.h>

int reboot(int magic, int magic2, int cmd, void *arg);

/* В glibc и в большинстве альтернативных libc (включая uclibc,
deitlibc, musl и других) некоторым константам присвоены
символьные имена RB_*, а библиотечная функция является
обёрткой с одним аргументом вокруг системного вызова: */

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

int reboot(int cmd);



ОПИСАНИЕ


Вызов reboot() перезагружает систему или разрешает/запрещает использование для
перезагрузки специального сочетания клавиш (с ... Читать дальше »

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





ИМЯ


readv, writev, preadv, pwritev, preadv2, pwritev2 - читает или пишет данные в
несколько буферов



ОБЗОР


#include <sys/uio.h>

ssize_t readv(int fd, const struct iovec *iov, int iovcnt);

ssize_t writev(int fd, const struct iovec *iov, int iovcnt);

ssize_t preadv(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t pwritev(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t preadv2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

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

preadv(), pwritev():
начиная с glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 и старее:
_BSD_SOURCE



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

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





ИМЯ


readlink, readlinkat - считывает значение символьной ссылки



ОБЗОР


#include <unistd.h>

ssize_t readlink(const char *pathname, char *buf, size_t bufsiz);

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

ssize_t readlinkat(int dirfd, const char *pathname,
char *buf, size_t bufsiz);

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

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

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



ОПИСАНИЕ


Вызов readlink() помещает содержимое символьной ссылки pathname в буфер buf
размером bufsiz. readlink() не добавляет в buf бай ... Читать дальше »

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





ИМЯ


readlink, readlinkat - считывает значение символьной ссылки



ОБЗОР


#include <unistd.h>

ssize_t readlink(const char *pathname, char *buf, size_t bufsiz);

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

ssize_t readlinkat(int dirfd, const char *pathname,
char *buf, size_t bufsiz);

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

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

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



ОПИСАНИЕ


Вызов readlink() помещает содержимое символьной ссылки pathname в буфер buf
размером bufsiz. readlink() не добавляет в buf бай ... Читать дальше »

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





ИМЯ


readdir - читает элемент каталога



ОБЗОР


int readdir(unsigned int fd, struct old_linux_dirent *dirp,
unsigned int count);

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



ОПИСАНИЕ


Эта не та функция, которая должна представлять для вас интерес. Смотрите описание
функции readdir(3), которая является интерфейсом библиотеки языка C,
соответствующим стандарту POSIX. В этой странице описан минимальный интерфейс
системного вызова ядра, который заменён на getdents(2).

Вызов readdir() читает структуру old_linux_dirent из каталога, заданного файловым
дескриптором fd, в буфер, указываемый в dirp. Аргумент count игнорируется; всегда
считывается только одна структура old_linux_dirent.

Структура old_linux_dirent определена следующим образ ... Читать дальше »

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





ИМЯ


readahead - включает упреждающее чтение файла в кэш страниц



ОБЗОР


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

ssize_t readahead(int fd, off64_t offset, size_t count);



ОПИСАНИЕ


Вызов readahead() включает упреждающее чтение (initiates readahead) из файла таким
образом, что последующие операции чтения этого файла будут брать данные их кэша и
не блокировать дисковый ввод-вывод (предполагается, что упреждающее чтение
началось раньше и что другие действия в системе не выбросили страницы из кэша).

Аргумент fd — это файловый дескриптор файла для чтения. В аргументе offset
указывает начальная точка, от которой нужно читать данные и в count задаётся
количество читаемых байт. Ввод-вывод выполняется во все страницы, так что offset
эффективно округляется в ... Читать дальше »

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





ИМЯ


read - читает из файлового дескриптора



ОБЗОР


#include <unistd.h>

ssize_t read(int fd, void *buf, size_t count);



ОПИСАНИЕ


Вызов read() пытается прочитать count байт из файлового дескриптора fd в буфер,
начинающийся по адресу buf.

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

Если значение count равно 0, то read() может обнаружить ошибки, описанные далее.
При отсутствии ошибок, или если read() не выполняет проверки, то read() с count
равным 0 возвращает 0 и ничего не меняет.

В соответствие с POSIX.1, если count больше SSIZE_MAX, то результат зависит от
реализации; смот ... Читать дальше »

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





ИМЯ


quotactl - управление дисковыми квотами



ОБЗОР


#include <sys/quota.h>
#include <xfs/xqm.h> /* для квот XFS */

int quotactl(int cmd, const char *special, int id, caddr_t addr);



ОПИСАНИЕ


С помощью системы квот можно задать каждому пользователю, группе или проекту лимит
использования дискового пространства. Для пользователя или группы в каждой
файловой системе можно указать необязательный (soft) и обязательный (hard) лимиты.
Обязательный лимит не может быть превышен. Необязательный лимит превышать можно,
но будет выдано соответствующее предостережение. Более того, пользователь может
превышать необязательный лимит только в течении льготного срока (по умолчанию,одна
неделя); после этого необязательный лимит будет считаться обязательным.

Управление квотами выполняется с помощью вызов ... Читать дальше »

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





ИМЯ


query_module - запросить ядро о различных параметрах, касающихся модулей



ОБЗОР


#include <linux/module.h>

int query_module(const char *name, int which, void *buf,
size_t bufsize, size_t *ret);

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



ОПИСАНИЕ


Замечание: Данный системный вызов доступен только в ядрах до Linux 2.6.

query_module() запрашивает информацию у ядра о загружаемых модулях. Возвращаемая
информация помещается в буфер, указанный в buf. Вызывающий должен указать размер
buf в bufsize. Смысл и формат возвращаемой информации зависит от операции,
задаваемой в which. Для некоторых операций требуется заполнить name для указания
на уже загруженный модуль, для некоторых в name можно указать NULL, что указывает
на получения свойст ... Читать дальше »

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





ИМЯ


readv, writev, preadv, pwritev, preadv2, pwritev2 - читает или пишет данные в
несколько буферов



ОБЗОР


#include <sys/uio.h>

ssize_t readv(int fd, const struct iovec *iov, int iovcnt);

ssize_t writev(int fd, const struct iovec *iov, int iovcnt);

ssize_t preadv(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t pwritev(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t preadv2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

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

preadv(), pwritev():
начиная с glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 и старее:
_BSD_SOURCE



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

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





ИМЯ


readv, writev, preadv, pwritev, preadv2, pwritev2 - читает или пишет данные в
несколько буферов



ОБЗОР


#include <sys/uio.h>

ssize_t readv(int fd, const struct iovec *iov, int iovcnt);

ssize_t writev(int fd, const struct iovec *iov, int iovcnt);

ssize_t preadv(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t pwritev(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t preadv2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

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

preadv(), pwritev():
начиная с glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 и старее:
_BSD_SOURCE



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

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





ИМЯ


pread, pwrite - чтение или запись информации из файлового дескриптора согласно
заданному смещению



ОБЗОР


#include <unistd.h>

ssize_t pread(int fd, void *buf, size_t count, off_t offset);

ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);

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

pread(), pwrite():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L



ОПИСАНИЕ


pread() читает максимум count байтов из файлового дескриптора fd, начиная со
смещения offset (от начала файла), в буфер, начиная с buf. Текущая позиция файла
не изменяется.

pwrite() записывает максимум count байтов из буфера buf в файловый дескриптор fd ,
начиная со смещения offset. Текущая позиция файла не изменяетс ... Читать дальше »

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





ИМЯ


pread, pwrite - чтение или запись информации из файлового дескриптора согласно
заданному смещению



ОБЗОР


#include <unistd.h>

ssize_t pread(int fd, void *buf, size_t count, off_t offset);

ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);

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

pread(), pwrite():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L



ОПИСАНИЕ


pread() читает максимум count байтов из файлового дескриптора fd, начиная со
смещения offset (от начала файла), в буфер, начиная с buf. Текущая позиция файла
не изменяется.

pwrite() записывает максимум count байтов из буфера buf в файловый дескриптор fd ,
начиная со смещения offset. Текущая позиция файла не изменяетс ... Читать дальше »

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





ИМЯ


select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - многопоточный синхронный
ввод-вывод



ОБЗОР


/* в соответствии с POSIX.1-2001, POSIX.1-2008 */
#include <sys/select.h>

/* в соответствии с ранними стандартами */
#include <sys/time.h>
#include <sys/types.h>
#include <unistd.h>

int select(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, struct timeval *timeout);

void FD_CLR(int fd, fd_set *set);
int FD_ISSET(int fd, fd_set *set);
void FD_SET(int fd, fd_set *set);
void FD_ZERO(fd_set *set);

#include <sys/select.h>

int pselect(int nfds, fd_set *readfds, fd_set *writefds,
fd_set *exceptfds, const struct timespec *timeout,
const sigset_t *sigmask);

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

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





ИМЯ


process_vm_readv, process_vm_writev - производит обмен данными между адресными
пространствами процессов



ОБЗОР


#include <sys/uio.h>

ssize_t process_vm_readv(pid_t pid,
const struct iovec *local_iov,
unsigned long liovcnt,
const struct iovec *remote_iov,
unsigned long riovcnt,
unsigned long flags);

ssize_t process_vm_writev(pid_t pid,
const struct iovec *local_iov,
unsigned long liovcnt,
const struct iovec *remote_iov,
unsigned long riovcnt,
unsigned long flags);

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

process_vm_readv(), process_vm_writev():
_GNU_SOURCE



ОПИСАНИЕ


Данные системные вызовы перемещают данные между адресным пространством вызывающего
процесса («локального процесса») и процесса с указанным ... Читать дальше »

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





ИМЯ


process_vm_readv, process_vm_writev - производит обмен данными между адресными
пространствами процессов



ОБЗОР


#include <sys/uio.h>

ssize_t process_vm_readv(pid_t pid,
const struct iovec *local_iov,
unsigned long liovcnt,
const struct iovec *remote_iov,
unsigned long riovcnt,
unsigned long flags);

ssize_t process_vm_writev(pid_t pid,
const struct iovec *local_iov,
unsigned long liovcnt,
const struct iovec *remote_iov,
unsigned long riovcnt,
unsigned long flags);

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

process_vm_readv(), process_vm_writev():
_GNU_SOURCE



ОПИСАНИЕ


Данные системные вызовы перемещают данные между адресным пространством вызывающего
процесса («локального процесса») и процесса с указанным ... Читать дальше »

Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 559 | Добавил: Администратор | Дата: 21.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; /* жёст ... Читать дальше »

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





ИМЯ


readv, writev, preadv, pwritev, preadv2, pwritev2 - читает или пишет данные в
несколько буферов



ОБЗОР


#include <sys/uio.h>

ssize_t readv(int fd, const struct iovec *iov, int iovcnt);

ssize_t writev(int fd, const struct iovec *iov, int iovcnt);

ssize_t preadv(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t pwritev(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t preadv2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

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

preadv(), pwritev():
начиная с glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 и старее:
_BSD_SOURCE



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

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





ИМЯ


readv, writev, preadv, pwritev, preadv2, pwritev2 - читает или пишет данные в
несколько буферов



ОБЗОР


#include <sys/uio.h>

ssize_t readv(int fd, const struct iovec *iov, int iovcnt);

ssize_t writev(int fd, const struct iovec *iov, int iovcnt);

ssize_t preadv(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t pwritev(int fd, const struct iovec *iov, int iovcnt,
off_t offset);

ssize_t preadv2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

ssize_t pwritev2(int fd, const struct iovec *iov, int iovcnt,
off_t offset, int flags);

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

preadv(), pwritev():
начиная с glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 и старее:
_BSD_SOURCE



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

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





ИМЯ


pread, pwrite - чтение или запись информации из файлового дескриптора согласно
заданному смещению



ОБЗОР


#include <unistd.h>

ssize_t pread(int fd, void *buf, size_t count, off_t offset);

ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);

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

pread(), pwrite():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L



ОПИСАНИЕ


pread() читает максимум count байтов из файлового дескриптора fd, начиная со
смещения offset (от начала файла), в буфер, начиная с buf. Текущая позиция файла
не изменяется.

pwrite() записывает максимум count байтов из буфера buf в файловый дескриптор fd ,
начиная со смещения offset. Текущая позиция файла не изменяетс ... Читать дальше »

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





ИМЯ


pread, pwrite - чтение или запись информации из файлового дескриптора согласно
заданному смещению



ОБЗОР


#include <unistd.h>

ssize_t pread(int fd, void *buf, size_t count, off_t offset);

ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset);

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

pread(), pwrite():
_XOPEN_SOURCE >= 500
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L



ОПИСАНИЕ


pread() читает максимум count байтов из файлового дескриптора fd, начиная со
смещения offset (от начала файла), в буфер, начиная с buf. Текущая позиция файла
не изменяется.

pwrite() записывает максимум count байтов из буфера buf в файловый дескриптор fd ,
начиная со смещения offset. Текущая позиция файла не изменяетс ... Читать дальше »

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





ИМЯ


prctl - операции над процессом



ОБЗОР


#include <sys/prctl.h>

int prctl(int option, unsigned long arg2, unsigned long arg3,
unsigned long arg4, unsigned long arg5);



ОПИСАНИЕ


Первый аргумент prctl() задаёт тип операции (типы определены в <linux/prctl.h>,
значения остальных аргументов зависят от указываемого типа. Первый аргумент может
принимать следующие значения:

PR_CAP_AMBIENT (начиная с Linux 4.3)
Читает или изменяет наружный набор мандатов вызывающей нити согласно
значению arg2, которое должно быть одним из следующих:

PR_CAP_AMBIENT_RAISE
Мандат, указанный в arg3, добавляется в наружный набор. Указанный
мандат уже должен присутствовать в разрешающем и наследуемом наборе.
Эта операция неприменима, если установлен бит безопасности
SECBIT_NO_CAP_AMBIENT_RAISE.
... Читать дальше »

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





ИМЯ


poll, ppoll - ожидает некоторое событие над файловым дескриптором



ОБЗОР


#include <poll.h>

int poll(struct pollfd *fds, nfds_t nfds, int timeout);

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

int ppoll(struct pollfd *fds, nfds_t nfds,
const struct timespec *tmo_p, const sigset_t *sigmask);



ОПИСАНИЕ


Вызов poll() выполняет сходную с select(2) задачу: он ждёт пока один дескриптор из
набора файловых дескрипторов не станет готов выполнить операцию ввода-вывода.

Отслеживаемый набор файловых дескрипторов задаётся в аргументе fds, который
представляет собой массив структур:

struct pollfd {
int fd; /* файловый дескриптор */
short events; /* запрашиваемые события */
short revents; /* возвра ... Читать дальше »

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





ИМЯ


posix_fadvise - предварительно декларирует вариант доступа для данных файла



ОБЗОР


#include <fcntl.h>

int posix_fadvise(int fd, off_t offset, off_t len, int advice);

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

posix_fadvise():
_POSIX_C_SOURCE >= 200112L



ОПИСАНИЕ


Программы могут использовать posix_fadvise() для объявления намерений осуществить
доступ к файлу данных в скором будущем определённым образом, тем самым позволяя
ядру выполнить некоторые операции по оптимизации.

Аргумент advice применяется к (не обязательно существующей) области, начинающейся
с offset, длиной len байт (или до конца файла, если len равно 0) внутри файла, на
который ссылается fd. Аргумент advice не является привязкой; он всего лишь
выражает ожидание прил ... Читать дальше »

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





ИМЯ


poll, ppoll - ожидает некоторое событие над файловым дескриптором



ОБЗОР


#include <poll.h>

int poll(struct pollfd *fds, nfds_t nfds, int timeout);

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

int ppoll(struct pollfd *fds, nfds_t nfds,
const struct timespec *tmo_p, const sigset_t *sigmask);



ОПИСАНИЕ


Вызов poll() выполняет сходную с select(2) задачу: он ждёт пока один дескриптор из
набора файловых дескрипторов не станет готов выполнить операцию ввода-вывода.

Отслеживаемый набор файловых дескрипторов задаётся в аргументе fds, который
представляет собой массив структур:

struct pollfd {
int fd; /* файловый дескриптор */
short events; /* запрашиваемые события */
short revents; /* возвра ... Читать дальше »

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





ИМЯ


mprotect, pkey_mprotect - контролирует доступ к области памяти



ОБЗОР


#include <sys/mman.h>

int mprotect(void *addr, size_t len, int prot);
int pkey_mprotect(void *addr, size_t len, int prot, int pkey);



ОПИСАНИЕ


Вызов mprotect() изменяет параметры доступа страниц памяти вызывающего процесса,
которые содержатся, даже частично, в адресном диапазоне [addr, addr+len-1].
Значение addr должно быть выровнено на границу страницы.

Если вызывающий процесс нарушает защиту доступа к памяти, то ядро посылает
процессу сигнал SIGSEGV.

Значение prot представляет собой комбинацию следующих флагов доступа: PROT_NONE
или побитово сложенные другие значения из следующего списка:

PROT_NONE Доступ к памяти запрещён.

PROT_READ Память можно читать.

PROT_WRITE Память можно изменять.
... Читать дальше »

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





ИМЯ


pkey_alloc, pkey_free - выделяет или освобождает ключ защиты



ОБЗОР


#include <sys/mman.h>

int pkey_alloc(unsigned long flags, unsigned long access_rights);
int pkey_free(int pkey);



ОПИСАНИЕ


Вызов pkey_alloc() выделяет ключ защиты (pkey), который можно передавать в
pkey_mprotect(2).

Аргумент pkey_alloc() flags может содержать ноль или более запретительных
операций:

PKEY_DISABLE_ACCESS
Запретить доступ ко всем данным памяти, на которую наложен возвращаемый
ключ.

PKEY_DISABLE_WRITE
Запретить доступ на запись в память, на которую наложен возвращаемый ключ.

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

Приложе ... Читать дальше »

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





ИМЯ


pkey_alloc, pkey_free - выделяет или освобождает ключ защиты



ОБЗОР


#include <sys/mman.h>

int pkey_alloc(unsigned long flags, unsigned long access_rights);
int pkey_free(int pkey);



ОПИСАНИЕ


Вызов pkey_alloc() выделяет ключ защиты (pkey), который можно передавать в
pkey_mprotect(2).

Аргумент pkey_alloc() flags может содержать ноль или более запретительных
операций:

PKEY_DISABLE_ACCESS
Запретить доступ ко всем данным памяти, на которую наложен возвращаемый
ключ.

PKEY_DISABLE_WRITE
Запретить доступ на запись в память, на которую наложен возвращаемый ключ.

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

Приложе ... Читать дальше »

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





ИМЯ


pivot_root - изменяет корневую файловую систему



ОБЗОР


int pivot_root(const char *new_root, const char *put_old);

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



ОПИСАНИЕ


Вызов pivot_root() перемещает корневую систему вызывающего процесса в каталог
put_old и делает каталог new_root новой корневой файловой системой у вызывающего
процесса.

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

Вызов pivot_root() может изменить (или не изменить) текущий корневой и текущий
рабочий каталоги во всех процессах или нитях, использующих старый корнево ... Читать дальше »

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





ИМЯ


pipe, pipe2 - создаёт канал



ОБЗОР


#include <unistd.h>

int pipe(int pipefd[2]);

#define _GNU_SOURCE /* Смотрите feature_test_macros(7) */
#include <fcntl.h> /* Определение констант O_* */
#include <unistd.h>

int pipe2(int pipefd[2], int flags);



ОПИСАНИЕ


pipe() создаёт однонаправленный канал данных, который можно использовать для
взаимодействия между процессами. Массив pipefd используется для возврата двух
файловых описателей, указывающих на концы канала. pipefd[0] указывает на конец
канала для чтения. pipefd[1] указывает на конец канала для записи. Данные,
записанные в конец канала, буферизируются ядром до тех пор, пока не будут
прочитаны из конца канала для чтения. Подробней см. pipe(7).

Если flags равно 0, то pipe2() выполняет то же что и p ... Читать дальше »

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





ИМЯ


pipe, pipe2 - создаёт канал



ОБЗОР


#include <unistd.h>

int pipe(int pipefd[2]);

#define _GNU_SOURCE /* Смотрите feature_test_macros(7) */
#include <fcntl.h> /* Определение констант O_* */
#include <unistd.h>

int pipe2(int pipefd[2], int flags);



ОПИСАНИЕ


pipe() создаёт однонаправленный канал данных, который можно использовать для
взаимодействия между процессами. Массив pipefd используется для возврата двух
файловых описателей, указывающих на концы канала. pipefd[0] указывает на конец
канала для чтения. pipefd[1] указывает на конец канала для записи. Данные,
записанные в конец канала, буферизируются ядром до тех пор, пока не будут
прочитаны из конца канала для чтения. Подробней см. pipe(7).

Если flags равно 0, то pipe2() выполняет то же что и p ... Читать дальше »

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





ИМЯ


personality - задаёт домен исполнения процесса



ОБЗОР


#include <sys/personality.h>

int personality(unsigned long persona);



ОПИСАНИЕ


Linux поддерживает несколько видов доменов исполнения процессов или специализаций
(personalities) для каждого процесса. Среди прочего, домены исполнения указывают
Linux как связывать номера сигналов с обработчиками сигналов. Система доменов
исполнения позволяет Linux частично поддерживать программы, собранные в других ОС,
подобных UNIX.

Если значение persona не равно 0xffffffff, то personality() установит домен
исполнения вызывающего равным значению persona. Если значение persona равно
0xffffffff, то возвращается текущую специализацию (persona) не изменяя её.

Список доступных доменов исполнения можно найти в <sys/personality.h>. Домен
испол ... Читать дальше »

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





ИМЯ


perfmonctl - интерфейс к блоку слежения за производительностью IA-64



ОБЗОР


#include <syscall.h>
#include <perfmon.h>

long perfmonctl(int fd, int cmd, void *arg, int narg);
Замечание: В glibc нет обёрточной функции для данного системного вызова; смотрите
ЗАМЕЧАНИЯ.



ОПИСАНИЕ


Специальный системный вызов perfmonctl() для IA-64 предоставляет интерфейс к PMU
(блок слежения за производительностью, perfomance monitoring unit). PMU содержит
регистры PMD (данные производительности, performance monitoring data) и PMC
(управление слежением за производительностью, performance monitoring control), в
которых собирается статистика по аппаратному обеспечению.

Вызов perfmonctl() выполняет операцию cmd над входными аргументами, указанными в
arg. Количество аргументов указывается в narg. В ар ... Читать дальше »

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





ИМЯ


pciconfig_read, pciconfig_write, pciconfig_iobase - работа с информацией
устройства PCI



ОБЗОР


#include <pci.h>

int pciconfig_read(unsigned long bus, unsigned long dfn,
unsigned long off, unsigned long len, void *buf);
int pciconfig_write(unsigned long bus, unsigned long dfn,
unsigned long off, unsigned long len, void *buf);
int pciconfig_iobase(long which, unsigned long bus,
unsigned long devfn);



ОПИСАНИЕ


Всё взаимодействие с устройствами PCI, в основном, уже выполнено в ядре на уровне
PCI, и поэтому данные вызовы, обычно, ненужны при вызове из пользовательского
пространства.

pciconfig_read()
Выполняет чтение в буфер buf из устройства dev со смещением off.

pciconfig_write()
Выполняет запись буфера buf в устройство dev со смещением off.

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

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





ИМЯ


pciconfig_read, pciconfig_write, pciconfig_iobase - работа с информацией
устройства PCI



ОБЗОР


#include <pci.h>

int pciconfig_read(unsigned long bus, unsigned long dfn,
unsigned long off, unsigned long len, void *buf);
int pciconfig_write(unsigned long bus, unsigned long dfn,
unsigned long off, unsigned long len, void *buf);
int pciconfig_iobase(long which, unsigned long bus,
unsigned long devfn);



ОПИСАНИЕ


Всё взаимодействие с устройствами PCI, в основном, уже выполнено в ядре на уровне
PCI, и поэтому данные вызовы, обычно, ненужны при вызове из пользовательского
пространства.

pciconfig_read()
Выполняет чтение в буфер buf из устройства dev со смещением off.

pciconfig_write()
Выполняет запись буфера buf в устройство dev со смещением off.

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

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





ИМЯ


pciconfig_read, pciconfig_write, pciconfig_iobase - работа с информацией
устройства PCI



ОБЗОР


#include <pci.h>

int pciconfig_read(unsigned long bus, unsigned long dfn,
unsigned long off, unsigned long len, void *buf);
int pciconfig_write(unsigned long bus, unsigned long dfn,
unsigned long off, unsigned long len, void *buf);
int pciconfig_iobase(long which, unsigned long bus,
unsigned long devfn);



ОПИСАНИЕ


Всё взаимодействие с устройствами PCI, в основном, уже выполнено в ядре на уровне
PCI, и поэтому данные вызовы, обычно, ненужны при вызове из пользовательского
пространства.

pciconfig_read()
Выполняет чтение в буфер buf из устройства dev со смещением off.

pciconfig_write()
Выполняет запись буфера buf в устройство dev со смещением off.

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

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





ИМЯ


pause - ждать сигнала



ОБЗОР


#include <unistd.h>

int pause(void);



ОПИСАНИЕ


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



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


pause() возвращает значение, только когда был пойман сигнал и завершилась функция
его обработки. В этом случае pause() возвращает -1, а errno устанавливается равной
EINTR.



ОШИБКИ


EINTR пойман сигнал и завершилась функция его обработки.



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


POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.



СМОТРИТЕ ТАКЖЕ


kill(2), select(2), signal(2), sigsuspend(2)


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

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





ИМЯ


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

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





ИМЯ


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

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





ИМЯ


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

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





ИМЯ


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

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





ИМЯ


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

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





ИМЯ


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

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





ИМЯ


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

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