Provided by:
manpages-ko_20050219-2_all 
SYSTEM CALLS
fork() fork() 후에 자식 프로세스는 연결된 공유 메모리 세그먼트들을
상속한다.
exec() exec() 후에 연결된 모든 공유 메모리 세그먼트는
분리된다.(파괴되는것이 아니다)
exit() exit() 시 연결된 모든 공유 메모리 세그먼트는
분리된다.(파괴되는것이 아니다)
성공시 유효한 세그먼트 식별자 shmid 가 반환되며, 에러시 -1이 반환된다.
실패시, errno 는 다음중 하나로 설정된다:
EINVAL 만일 SHMMIN > size, 또는 size > SHMMAX, 또는 size이
세그먼트의 크기보다 크다면 이 에러가 반환된다.
EEXIST IPC_CREAT | IPC_EXCL 이 지정되어 있고, 세그먼트가 존재하면
이 에러가 반환된다.
EIDRM 세그먼트가 파괴나 제거되도록 표시되어 있다면 이 에러가
반환된다.
ENOSPC 가능한 모든 공유 메모리 id (SHMMNI) 를 가졌거나 요청된 size
의 세그먼트 할당이 시스템 전체 공유 메모리 제한값 (SHMALL)
을 초과할경우 반환된다.
ENOENT 주어진 key에 해당하는 세그먼트가 존재하지 않고, IPC_CREAT
가 지정되지 않았다면 반환된다.
EACCES 사용자가 공유 메모리 세그먼트에 대한 접근 허가권이 없을때
반환된다.
ENOMEM 세그먼트를 위해 할당할 메모리가 없을때 반환된다.
IPC_PRIVATE 는 플레그 필드가 아니라 key_t 타입이다. 이 특별한 값이 key
에 사용된다면, 시스템 콜은 shmflg 의 하위 9비트들외 모든것을 무시한다.
그리고 새 공유 메모리 세그먼트를 생성(성공시)한다.
다음은 shmget 시스템 콜에 영향을 주는 공유 메모리 세그먼트 자원들의
제한값들이다:
SHMALL 시스템 전체의 공유 메모리 세그먼트 최대 값: 정책 의존적이다.
SHMMAX 공유 메모리 세그먼트의 최대 크기(바이트수): 수행
의존적이다.(현재 4M)
SHMMIN 공유 메모리 세그먼트의 최소 크기(바이트수): 수행
의존적이다.( PAGE_SIZE 가 유효한 최소 크기이지만, 현재는
1byte이다.)
SHMMNI 시스템 전체의 공유 메모리 세그먼트 최대 수: 수행
의존적이다(현재 4096)
수행시 프로세스당 공유 메모리 세그먼트의 특별한 제한은 없다. (SHMSEG)
IPC_PRIVATE 를 사용하면 할당된 공유 메모리 세그먼트를 접근하는 다른
프로세스들을 저지하지 않는다.
파일들 때문에, 프로세스를 위해 공유 메모리 세그먼트에 대한 배타적
접근을 보장하기 위한 방법이 현재는 없다. shmflg 비트에 IPC_CREAT 와
IPC_EXCL 의 지정만이 새 공유 메모리 세그먼트 생성을 보장(성공시)한다.
이것은 세그먼트에 대한 배타적 접근을 나타내는 것은 아니다.
SVr4, SVID. SVr4 문섦EEXIST 에러 조건을 추가적으로 기술했다. SVr4
와 SVID 문섧湧EIDRM 조건을 기술하지 않았다.
ftok(3), ipc(5), shmctl(2), shmat(2), shmdt(2)
정걷<skyeyes@soback.kornet.net> 2000년 5월 16일
한글 Manpage 프로젝트 (http://man.kldp.org) 2005년 2월 13일