IPC(5)

이름
ipc - System V 상호프로세스(interprocess) 통신 메카니즘.

사용법
# include <sys/types.h>
# include <sys/ipc.h>
# include <sys/msg.h>
# include <sys/sem.h>
# include <sys/shm.h>

설명
메뉴얼은 메시지큐, 신호설정과 공유메모리분할과 같은 System V 상호프로세스(interprocess) 통신 메카니즘의 리눅스 구현을 참조한다. 자원 은 이러한 메카니즘에서 하나의 예이다. <sys/ipc.h> 시스템 헤더파일에 의해 정의되는 ipc_perm 구조는 다음의 멤버들을 포함한다:

    ushort cuid; /* 만든 사용자 id */
    ushort cgid; /* 만든 그룹 id */
    ushort uid; /* 소유자 id */
    ushort gid; /* 소유그룹 id */
    ushort mode; /* 읽기/쓰기 권한 */

mode member of the ipc_perm 구조는 ipc시스템 호출을 실행하는 프로세스를 위한 자원의 접근 권한을 정의한다. 권한은 다음과 같이 해석된다:

	0400	Read by user.
	0200	Write by user.

	0040	Read by group.
	0020	Write by group.

	0004	Read by others.
	0002	Write by others.

비트 0100, 0010 and 0001 (실행 비트)는 시스템의 의해 사용되지 않는다. 덪붙여 "write" 는 시그널 설정을 위한 "alter"를 의미한다.

같은 시스템 헤더파일은 또한 다음의 심볼릭 상수를 정의한다.

IPC_CREAT
    키(key)가 없다면 entry를 생성한다.

IPC_EXCL
    키가 있으면 실패한다.

IPC_NOWAIT
    요청이 대기되어져야만 에러가 난다.

IPC_PRIVATE
    개인 키.

IPC_RMID
    자원 삭제.

IPC_SET
    자원 옵션 설정.

IPC_STAT
    자원 옵션을 갖는다.

msg_perm
    메세지 큐에 접근권한을 지정하는 ipc_perm 구조.

msg_qnum
    메세지 큐의 메세지 번호.

msg_qbytes
    메세지 큐에 허용된 메세지 텍스트의 최대크기.

msg_lspid
    마지막 msgsnd 시스템 호출을 실행하는 프로세스의 ID.

msg_lrpid
    마지막 msgrcv 시스템 호출을 실행하는 프로세스의 ID.

msg_stime
    마지막 msgsnd 시스템 호출의 시간.

msg_rtime
    마지막 msgcv 시스템 호출의 시간.

msg_ctime
    msqid_ds 구조의 멤버를 바꾸는 마지막 시스템 호출의 시간.

sem_perm
    시그널 설정의 접근 권한을 지정하는 ipc_perm 구조.

sem_otime
    마지막 semop 시스템 호출의 시간.

sem_ctime
    마지막 semctl 시스템 호출의 시간.

semval
    시그널 값: 0이나 양의 정수.

semncnt
    증가하는 semval 를 위해 정지된 프로세스의 수.

shm_perm
    고유메모리 구간에 접근 권한을 지정하는 ipc_perm 구조.

shm_segsz
    공유메모리 구간의 크기.

shm_cpid
    공유메모리 구간을 생성하는 프로세스의 ID.

shm_lpid
    shmat 나 shmdt 시스템 호출을 실행하는 마지막 프로세스의 ID.

shm_atime
    마지막 shmat 시스템 호출의 시간.

shm_dtime
    마지막 shmdt 시스템 호출의 시간.

shm_ctime
    shmid_ds 을 바꾸는 마지막 shmctl 시스템 호출의 시간.

관련 항목
ftok(3), msgctl(2), msgget(2), msgrcv(2), msgsnd(2), semctl(2), semget(2), semop(2), shmat(2), shmctl(2), shmget(2), shmdt(2).