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





ИМЯ


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) Системные вызовы ядра (функции языка Си) | Просмотров: 437 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 524 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 443 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 773 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 489 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 445 | Добавил: Администратор | Дата: 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) Системные вызовы ядра (функции языка Си) | Просмотров: 450 | Добавил: Администратор | Дата: 21.11.2017 | Комментарии (0)

« 1 2 ... 20 21 22 23 24 ... 59 60 »