mlock()

Заблокировать диапазон адресного пространства процесса в физической памяти

Прототип:

#include <sys/mman.h>
int mlock( const void *addr,
size_t len );

Аргументы:

addr
The starting address for the range of process address space.
len
The amount of the memory to lock, in bytes. There's no limit on the amount of memory that a process may lock, other than the amount of physical memory in the system.

Библиотека:

libc

Описание:

The mlock() function locks a range of process address space starting at address addr and continuing for length len. The addr must be a multiple of PAGESIZE, which depends on the target platform.


Note: The calling process needs superuser capabilities to call mlock().

The successful call to mlock() function ensures that the pages are memory-resident (i.e. the addresses always reside in physical memory).

Возвращаемое значение:

0
Успешное завершение.
-1
Возникла ошибка. Код ошибки записан в errno.

Коды ошибок:

ENOMEM
EAGAIN
Some or all of the memory identified by the operation couldn't be locked when the call was made.
EPERM
The calling process doesn't have the superuser capabilities.

Классификация:

POSIX 1003.1 MLR

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

mlockall(), mmap(), munlock(), munlockall()




Предыдущий раздел: Описание API системной библиотеки