plock 서브루틴

용도

메모리에서 프로세스, 텍스트 또는 데이터를 잠급니다.

라이브러리

표준 C 라이브러리(libc.a)

구문

#include <sys/lock.h>
int plock ( Operation)
int Operation;

설명

Plock 서브루틴을 사용하면 호출 프로세스가 텍스트 영역(텍스트 잠금), 데이터 영역(데이터 잠금) 또는 텍스트와 데이터 영역을 모두 메모리에 잠그거나 잠금 해제(프로세스 잠금)할 수 있습니다. Plock 서브루틴은 공유 텍스트 세그먼트나 공유 데이터 세그먼트를 잠그지 않습니다. 잠긴 세그먼트는 메모리에 고정되며 모든 루틴 페이징에 영향을 받지 않습니다. 부모 프로세스에 의해 잠긴 메모리는 포크 서브루틴 호출 후 자식 프로세스에 의해 상속되지 않습니다. 마찬가지로 프로세스가 실행 서브루틴 중 하나를 실행하면 잠긴 메모리가 잠금 해제됩니다. 이 서브루틴을 사용하려면 호출 프로세스에 루트 사용자 권한이 있어야 합니다.

실시간 프로세스는 이 서브루틴을 사용하여 해당 코드, 데이터 및 스택이 항상 메모리에 상주하는지 확인할 수 있습니다.

참고: plock 서브루틴을 호출하기 전에 사용자 애플리케이션은 ulimit 서브루틴을 사용하여 최대 스택 제한 값을 낮춰야 합니다.

매개변수

항목 설명
운영 다음 중 하나를 지정하십시오:
프로클락
텍스트 및 데이터를 메모리로 잠급니다 (프로세스 잠금).
TXTLOCK
텍스트를 메모리로 잠급니다 (텍스트 잠금).
DATLOCK
데이터를 메모리로 잠급니다 (데이터 잠금).
잠금 해제
잠금을 제거합니다.

리턴 값

성공적으로 완료되면 0값이 호출 프로세스로 리턴됩니다. 그렇지 않으면 -1 값이 반환되고 errno 전역 변수가 오류를 나타내도록 설정됩니다.

오류 코드

다음 중 하나 이상에 해당하면 plock 서브루틴은 실패합니다:

항목 설명
EPERM 호출 프로세스의 유효 사용자 ID에 루트 사용자 권한이 없습니다.
EINVAL Operation 매개변수에는 PROCLOCK, TXTLOCK, DATLOCK 또는 UNLOCK 이외의 값이 있습니다.
EINVAL Operation 매개변수는 PROCLOCK과 같으며 호출 프로세스에 프로세스 잠금, 텍스트 잠금 또는 데이터 잠금이 이미 존재합니다.
EINVAL Operation 매개변수는 TXTLOCK과 같으며 호출 프로세스에 텍스트 잠금 또는 프로세스 잠금이 이미 존재합니다.
EINVAL Operation 매개변수는 DATLOCK과 같으며 호출 프로세스에 데이터 잠금 또는 프로세스 잠금이 이미 존재합니다.
EINVAL Operation 매개변수는 UNLOCK과 같으며 호출 프로세스에 잠금 유형이 존재하지 않습니다.