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





ИМЯ


mlock, mlock2, munlock, mlockall, munlockall - блокируют и разблокируют память



ОБЗОР


#include <sys/mman.h>

int mlock(const void *addr, size_t len);
int mlock2(const void *addr, size_t len, int flags);
int munlock(const void *addr, size_t len);

int mlockall(int flags);
int munlockall(void);



ОПИСАНИЕ


Вызовы mlock(), mlock2() и mlockall() блокируют часть или всё виртуальное адресное
пространство процесса в ОЗУ, запрещая эту память перемещать в пространство
подкачки.

Вызовы munlock() и munlockall() выполняют обратную операцию, разблокируя часть или
всё виртуальное адресное пространство процесса, после чего страницы в этом
диапазоне виртуальных адресов могут вытесняться в пространство подкачки, если того
потребуется менеджеру памяти ядра.

Размер блокировки и разблокир ... Читать дальше »

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





ИМЯ


msync - синхронизирует содержимое файла с его отображением в памяти



ОБЗОР


#include <sys/mman.h>

int msync(void *addr, size_t length, int flags);



ОПИСАНИЕ


Вызов msync() сбрасывает изменения файла, который отображён в память с помощью
mmap(2), обратно в файловую систему. Без использования этого вызова нет никакой
гарантии, что изменения будут записаны в файл до вызова munmap(2). Если быть
точнее, то на диск записывается часть файла, начинающаяся в памяти с адреса addr
длиной length.

В аргументе flags должен быть один из флагов MS_ASYNC и MS_SYNC, а также
дополнительно можно указать MS_INVALIDATE. Данные биты имеют следующее значение:

MS_ASYNC
Запланировать обновление, но вызов завершается сразу.

MS_SYNC
Запланировать обновление и ждать его завершения.
... Читать дальше »

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





ИМЯ


msgrcv, msgsnd - операции с очередью сообщений System V



ОБЗОР


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

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);

ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,
int msgflg);



ОПИСАНИЕ


Системные вызовы msgsnd() и msgrcv() используются для отправки и получения
сообщений из очереди сообщений System V. Вызывающий процесс должен иметь права на
запись в очередь сообщений, чтобы отправлять сообщения и права на чтение для
получения сообщений.

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

struct msgbuf {
long mtype; /* тип сообщения, значение должно быть > 0 */
char mtext[1]; /* данные сообщения */
};

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

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





ИМЯ


msgrcv, msgsnd - операции с очередью сообщений System V



ОБЗОР


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

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);

ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,
int msgflg);



ОПИСАНИЕ


Системные вызовы msgsnd() и msgrcv() используются для отправки и получения
сообщений из очереди сообщений System V. Вызывающий процесс должен иметь права на
запись в очередь сообщений, чтобы отправлять сообщения и права на чтение для
получения сообщений.

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

struct msgbuf {
long mtype; /* тип сообщения, значение должно быть > 0 */
char mtext[1]; /* данные сообщения */
};

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

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





ИМЯ


msgrcv, msgsnd - операции с очередью сообщений System V



ОБЗОР


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

int msgsnd(int msqid, const void *msgp, size_t msgsz, int msgflg);

ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,
int msgflg);



ОПИСАНИЕ


Системные вызовы msgsnd() и msgrcv() используются для отправки и получения
сообщений из очереди сообщений System V. Вызывающий процесс должен иметь права на
запись в очередь сообщений, чтобы отправлять сообщения и права на чтение для
получения сообщений.

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

struct msgbuf {
long mtype; /* тип сообщения, значение должно быть > 0 */
char mtext[1]; /* данные сообщения */
};

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

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





ИМЯ


msgget - возвращает идентификатор очереди сообщений System V



ОБЗОР


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

int msgget(key_t key, int msgflg);



ОПИСАНИЕ


Системный вызов msgget() возвращает идентификатор очереди сообщений System V,
связанный со значением аргумента key. Он также создаёт новую очередь сообщений,
если значение key равно IPC_PRIVATE или если с параметром key не существует ни
одной очереди сообщений и в поле msgflg указан флаг IPC_CREAT.

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

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

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





ИМЯ


msgctl - операции для работы с сообщениями System V



ОБЗОР


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

int msgctl(int msqid, int cmd, struct msqid_ds *buf);



ОПИСАНИЕ


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

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

struct msqid_ds {
struct ipc_perm msg_perm; /* владелец и права */
time_t msg_stime; /* время последнего msgsnd(2) */
time_t msg_rtime; /* время последнего msgrcv(2) */
time_t msg_ctime; /* время последнего изменения */
unsigned long __msg_cbytes; /* текущее количество байт в
очереди (нет в стандарте) */
msgqnum_t msg_qnum; /* текущее количество сообщений
в очереди */
... Читать дальше »

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

« 1 2 ... 25 26 27 28 29 ... 59 60 »