Rechercher une page de manuel
semget
Langue: ko
Version: November 1, 1993 (fedora - 25/11/07)
Section: 2 (Appels système)
이름
semget - 세마포어 설정을 확인한다.사용법
# include <sys/types.h> # include <sys/ipc.h> # include <sys/sem.h>
int semget ( key_t key, int nsems, int semflg )
설명
기능은 인수 key 의 값과 일치하는 세마포어 설정 확인자(identifier)를 반환한다. nsems 세마포어의 새로운 설정은 key 가 IPC_PRIVATE 값을 갖거나 key 가 존재하는 모든 세마포어 설정이 key 와 일치하지 않는 IPC_PRIVATE 가 아니면 생성되고, IPC_CREAT 가 semflg 에 나타나지 않는다.(i.e. semflg 와 IPC_CREAT 는 0이 아니다). 필드 IPC_CREAT 와 IPC_EXCL 의 semflg 에 존재는 같은 룰로 작동한다.생성시, 인수 semflg 의 낮은 9비트는 같은 포맷의 세마포어 설정에 접근 권한을 정의한다.
게다가 생성하는 동안 시스템 호출은 시스템 세마포어 설정데이타 구조 semid_ds 를 다음과 같이 초기화한다:
- sem_perm.cuid 와 sem_perm.uid 는 호출한 프로세스의 유효 사용자-ID로 설정된다.
- sem_perm.cgid 와 sem_perm.gid 는 호출한 프로세스의 유효한 그룹-ID로 설정된다.
- sem_perm.mode 의 가장 낮은 9비트는 semflg 의 가장 낮은 9비트로 설정된다.
- sem_nsems 는 nsems 의 값으로 설정된다.
- sem_otime 는 0으로 설정된다.
- sem_ctime 는 현재시간으로 설정된다.
인수 nsems 는 시스템호출이 없을 때, 0 일 수 있다. 그 외에 nsems 는 0 보다 크거나 semid당 세마포어의 가장 큰 수 이하이어야만 한다. (SEMMSL).
세마포어이 이미 존재한다면, 적근 권한은 입증되었고, verified, and a check is made to see if it is marked for destruction.
반환값
성공시, 반환값은 세마포어 설정 확인자(양의 정수)일 것이고, 그렇지 않으면 에러를 나타내는 errno 와 함께 -1 이 반환된다.에러
실패값 반환을 위해, errno 는 다음 값중 하나로 설정될 것이다:- EACCES
- 세마포어 설정은 key 를 위해 존재하지만, 호출한 프로세스는 설정에 접근권한을 갖지 못한다.
- EEXIST
- 세마포어 설정은 key 를 위해 존재하고 semflg 는 IPC_CREAT 와 IPC_EXCL 를 옹호한다(asserting).
- ENOENT
- 어떠한 시그너 설정도 key 를 위해 존재하지 않고, semflg 는 IPC_CREAT 를 옹호하지 않는다.
- ENOMEM
- 세마포어 설정가 설정되어져야 했지만 시스템이 새로운 데이타구조를 위한 메모리가 충분하지 않다.
- ENOSPC
- 세마포어 설정이 생성되어져야 했지만 시스템이 시그널 설정 (SEMMNI) 의 최대값 제한이나 세마포어 (SEMMNS) 의 최대값 범위를 넘어섰다.
주의
IPC_PRIVATE 은 플래그 필드가 아니지만, key_t 타입이다. 이 특별값이 key 를 위해 사용된다면, 시스템 호출은 모두 무시되지만 semflg 의 9비트를 정렬하고 새로운 세마포어 설정을 성공적으로 생성한다.다음은 semget 호출에 영향을 주는 세마포어 설정자원을 제한한다:
- SEMMNI
- 시스템 세마포어 설정의 최대값범위: 정책의지.
- SEMMSL
- semid당 세마포어의 최대값: 구현의지(현재 500).
- SEMMNS
- 시스템 세마포어의 최대값 범위 ; 정책의지.
버그
IPC_PRIVATE 의 사용은 다른 할당된 세마포어 설정에 접근 프로세스들을 억제한다.데이타 구조는 설정에 시스템 호출에 의해 초기화되지 않는 각 세마포어과 일치한다.
호환
SVr4, SVID. SVr4 documents additional error conditions EINVAL, EFBIG, E2BIG, EAGAIN, ERANGE, EFAULT.관련 항목
ftok(3), ipc(5), semctl(2), semop(2)역자
ASPLINUX<man@asp-linux.co.kr>, 2000년 7월 29일 배성훈<plodder@kldp.org>, 2000년 11월 18일Contenus ©2006-2024 Benjamin Poulain
Design ©2006-2024 Maxime Vantorre