msem_remove 서브루틴
용도
세마포어를 제거합니다.
라이브러리
표준 C 라이브러리(libc.a)
구문
#include <sys/mman.h> int msem_remove ( Sem)
msemaphore *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 구조를 가리키고 있음을 나타냅니다. |