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





ИМЯ


ioperm - устанавливает права на работу с портами ввода/вывода



ОБЗОР


#include <sys/io.h> /* для glibc */

int ioperm(unsigned long from, unsigned long num, int turn_on);



ОПИСАНИЕ


Вызов ioperm() устанавливает num бит прав доступа вызывающей нити, начиная с
адреса порта from. Если turn_on не равно 0, то права для указанных битов
устанавливаются, иначе сбрасываются. Если turn_on не равно 0, вызывающая нить
должна быть привилегированной (CAP_SYS_RAWIO).

До Linux 2.6.8, можно было указывать только первые 0x3ff портов ввода-вывода. Для
остальных портов нужно было использовать системный вызов iopl(2) (с аргументом
level равным 3). Начиная с Linux 2.6.8, можно указывать 65536 портов ввода-вывода.

Права наследуются дочерним процессом, созданным fork(2) (но смотрите ЗАМЕЧАНИЯ).
... Читать дальше »

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





ИМЯ


io_getevents - считывает асинхронные события ввода/вывода из очереди выполнения



ОБЗОР


#include <linux/aio_abi.h> /* определяет необходимые типы */
#include <linux/time.h> /* определяет «struct timespec» */

int io_getevents(aio_context_t ctx_id, long min_nr, long nr,
struct io_event *events, struct timespec *timeout);

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



ОПИСАНИЕ


Системный вызов io_getevents() пытается считать, по меньшей мере, от min_nr до nr
событий из очереди выполнения контекста AIO, указанном в ctx_id.

В аргументе timeout задаётся время (относительное значение) ожидания событий в
виде структуры:

struct timespec {
time_t tv_sec; /* секунды */
long tv_nsec; /* наносекунды [0 .. 999999999] */
};
... Читать дальше »

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





ИМЯ


io_destroy - уничтожает асинхронный контекст ввода-вывода



ОБЗОР


#include <linux/aio_abi.h> /* определяет необходимые типы */

int io_destroy(aio_context_t ctx_id);

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



ОПИСАНИЕ


Системный вызов io_destroy() пытается отменить все невыполненные асинхронные
операции ввода-вывода, относящиеся к ctx_id, заблокировать выполнение выполнение
всех операций, которые нельзя отменить, и уничтожить ctx_id.



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


В случае успешного завершения io_destroy() возвращает 0. В случае ошибки смотрите
ЗАМЕЧАНИЯ.



ОШИБКИ


EFAULT Указанный контекст некорректен.

EINVAL Некорректен контекст AIO, указанный ctx_id.

ENOSYS io_destroy() не ... Читать дальше »

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





ИМЯ


ioctl_userfaultfd - создаёт файловый дескриптор для обработки страничных ошибок в
пользовательском пространстве



ОБЗОР


#include <sys/ioctl.h>

int ioctl(int fd, int cmd, ...);



ОПИСАНИЕ


Над объектом userfaultfd (созданным вызовом userfaultfd(2)) можно выполнять
различные операции ioctl(2) используя вызовы вида:

ioctl(fd, cmd, argp);
Здесь fd — файловый дескриптор, ссылающийся на объект userfaultfd, cmd — одна из
команд, перечисленных ниже, а argp — указатель на структуру данных, используемую
командой cmd.

Операции ioctl(2) описаны ниже. Операции UFFDIO_API, UFFDIO_REGISTER и
UFFDIO_UNREGISTER для настройки поведения userfaultfd. Эти операции позволяют
вызывающему выбрать какие свойства нужно включить и какие типы событий будут
доставляться приложению. О ... Читать дальше »

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





ИМЯ


ioctl_tty - вызовы ioctl для терминалов и последовательных портов



ОБЗОР


#include <termios.h>

int ioctl(int fd, int cmd, ...);



ОПИСАНИЕ


Вызов ioctl(2) для терминалов и последовательных портов принимает много разных
параметров команд. Большинство из них требуют при этом третий аргумент разных
типов, далее по тексту называемый argp или arg.

Вызовы ioctl используются только в непереносимых программах. По возможности
старайтесь везде использовать интерфейс POSIX, описанный в termios(3).

Определение и установка атрибутов терминала
TCGETS struct termios *argp
Эквивалентно tcgetattr(fd, argp).
Получить текущие настройки последовательного порта.

TCSETS const struct termios *argp
Эквивалентно tcsetattr(fd, TCSANOW, argp).
Установить новые текущие настройки по ... Читать дальше »

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





ИМЯ


ioctl_ns - операции ioctl() для пространств имён Linux



ОПИСАНИЕ


Определение отношений между пространствами имён
Следующие операции ioctl(2) позволяют определить порядок отношений между
пространствами имён (смотрите user_namespaces(7) и pid_namespaces(7)). Форма
вызовов:

new_fd = ioctl(fd, request);

Здесь в каждом случае fd ссылается на файл /proc/[pid]/ns/*. При успешном
выполнении обе операции возвращают новый файловый дескриптор.

NS_GET_USERNS (начиная с Linux 4.9)
Возвращает файловый дескриптор, ссылающийся на пространство имён
пользователя, которое владеет пространством имён, на которое ссылается fd.

NS_GET_PARENT (начиная с Linux 4.9)
Возвращает файловый дескриптор, который ссылается на родительское
пространство имён для пространства имён, на которое ссылается fd. Эта
опера ... Читать дальше »

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





ИМЯ


ioctl_iflags - операции ioctl() для флагов иноды



ОПИСАНИЕ


Различные файловые системы Linux поддерживают флаги иноды — атрибуты, которые
изменяют смысл файлов и каталогов. Эти флаги можно запросить и изменить с помощью
двух операций ioctl(2):

int attr;
fd = open("pathname", ...);

ioctl(fd, FS_IOC_GETFLAGS, &attr); /* помещает текущие флаги
в 'attr' */
attr |= FS_NOATIME_FL; /* изменяет полученную битовую маску */
ioctl(fd, FS_IOC_SETFLAGS, &attr); /* обновляет флаги иноды,
на которую указывает 'fd' */

Команды оболочки lsattr(1) и chattr(1) предоставляют интерфейс к этим двум
операциям, позволяя пользователю просматривать и изменять флаги иноды, связанной с
файлом.

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

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

« 1 2 ... 34 35 36 37 38 ... 59 60 »