ИМЯ 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() выполняют обратную операцию, разблокируя часть или всё виртуальное адресное пространство процесса, после чего страницы в этом диапазоне виртуальных адресов могут вытесняться в пространство подкачки, если того потребуется менеджеру памяти ядра.
Размер блокировки и разблокир
...
Читать дальше »
|
ИМЯ 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 Запланировать обновление и ждать его завершения.
...
Читать дальше »
|
ИМЯ 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]; /* данные сообщения */ };
Поле
...
Читать дальше »
|
ИМЯ 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]; /* данные сообщения */ };
Поле
...
Читать дальше »
|
ИМЯ 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]; /* данные сообщения */ };
Поле
...
Читать дальше »
|
ИМЯ 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)).
При создании права доступа к очереди сообщений определяются млад
...
Читать дальше »
|
ИМЯ 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; /* текущее количество сообщений в очереди */
...
Читать дальше »
| « 1 2 ... 25 26 27 28 29 ... 59 60 » |