PLOCK(2)

НАЗВАНИЕ
plock - удержание процесса в памяти

СИНТАКСИС


        #include <sys/lock.h>



        int plock (op)

        int op;

ОПИСАНИЕ
Системный вызов plock позволяет вызвавшему его процессу удержать в памяти сегмент команд, данных, или оба сегмента. После этого указанные сегменты не вытесняются из памяти при подкачке страниц, принадлежащих другим процессам. Посредством plock можно также отменить удержание сегментов в памяти. У процесса, вызывающего plock, действующий идентификатор пользователя должен быть идентификатором суперпользователя. Аргумент op задает требуемые действия:

    PROCLOCK Удерживать в памяти сегменты команд и данных.
    TXTLOCK Удерживать в памяти сегмент команд.
    DATLOCK Удерживать в памяти сегмент данных.
    UNLOCK Отменить удержание.

Указанное действие не выполняется и системный вызов plock завершается неудачей, если выполнено хотя бы одно из следующих условий:

[EPERM]
Соответствующий процессу действующий идентификатор пользователя не является идентификатором суперпользователя.
[EINVAL]
Аргумент op равен PROCLOCK, однако по крайней мере один сегмент процесса уже удерживается в памяти.
[EINVAL]
Аргумент op равен TXTLOCK, однако сегмент команд (или весь процесс) уже удерживается в памяти.
[EINVAL]
Аргумент op равен DATLOCK, однако сегмент данных (или весь процесс) уже удерживается в памяти.
[EINVAL]
Аргумент op равен UNLOCK, но ни один сегмент процесса не удерживается в памяти.
[EAGAIN]
Памяти недостаточно.

СМ. ТАКЖЕ
exec(2), exit(2), fork(2).

ДИАГНОСТИКА
При успешном завершении результат равен 0; в случае ошибки возвращается -1, а переменной errno присваивается код ошибки.