msem_remove 서브루틴

용도

세마포어를 제거합니다.

라이브러리

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

구문

#include <sys/mman.h>
int msem_remove ( Sem)
msemaphore *Sem;

설명

Msem_remove 서브루틴은 바이너리 세마포어를 제거합니다. 이후 msem_init 서브루틴을 호출하여 다시 초기화하기 전에 msemaphore 구조를 사용하면 정의되지 않은 결과가 발생합니다.

또한 msem_remove 서브루틴은 제거된 세마포어의 msem_lock 서브루틴에서 대기 중인 모든 프로세스가 오류와 함께 반환되도록 합니다.

' msemaphore 구조에 ' msem_init 서브루틴에 대한 호출로 인해 발생하지 않은 값이 포함된 후 ' msem_lock ' 및 ' msem_unlock ' 서브루틴에 대한 (비어 있는) 호출 시퀀스가 이어지면 결과는 정의되지 않습니다. 메세마포어 구조의 주소는 중요합니다. Msemaphore 구조체에 다른 주소의 msemaphore 구조체에서 복사한 값이 포함되어 있으면 결과는 정의되지 않습니다.

매개변수

항목 설명
Sem 제거할 세마포어를 지정하는 세마포어 구조를 가리킵니다.

리턴 값

성공하면 msem_remove 서브루틴은 0 값을 반환합니다. 그렇지 않으면 -1 반환하고 오류를 나타내는 errno 전역 변수를 설정합니다.

오류 코드

Msem_remove 서브루틴이 실패하면 errno 전역 변수가 다음 값으로 설정됩니다:

항목 설명
EINVAL Sem 매개변수가 제거된 세마포어를 지정하는 msemaphore 구조를 가리키고 있음을 나타냅니다.