명명된 세마포어(사용됨 semaphore.h
)는 형식의 이름으로 식별됩니다 /somename
. 즉, 최대 NAME_MAX-4(즉, 251)자로 구성된 문자열로, 첫 글자는 슬래시와 그 뒤에 하나 이상의 문자로 구성됩니다. 이 문자 중 어느 것도 슬래시가 아닙니다.
이름은 파일 시스템의 경로 이름과 일치하기 때문입니다. 이 세마포어는 어디에 있나요? ipcs
System V 세마포어와 함께 사용됩니다. POSIX 세마포어를 찾는 방법은 무엇입니까?
답변1
~에서사람 7 SEM_개요:
파일 시스템을 통해 명명된 세마포어에 액세스
Linux에서 명명된 세마포어는 일반적으로 다음 위치에 설치되는 가상 파일 시스템에 생성됩니다.
/dev/shm
, 이름 형식은 입니다sem.somename
. (이것이 세마포어 이름이 NAME_MAX 문자 대신 NAME_MAX-4로 제한되는 이유입니다.)
답변2
/proc/<pid>/maps/
특정 PID를 가진 프로세스의 메모리 맵이 표시됩니다. (관련 질문:https://stackoverflow.com/questions/1401359/understanding-linux-proc-id-maps)
출력에서 POSIX 세마포어는 /dev/shm/
.