Scroll to navigation

IPC(5) 리눅스 프로그래머 메뉴얼 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 (실행 비트)는 시스템의 의해 사용되지 않는다. �C붙여 "write" 는 시그널 설정을 위한 "alter"를 의미한다.

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

키(key)가 없다면 entry를 생성한다.
키가 있으면 실패한다.
요청이 대기되어져야만 에러가 난다.
개인 키.
자원 삭제.
자원 옵션 설정.
자원 옵션을 갖는다.
메세지 큐에 접근권한을 지정하는 ipc_perm 구조.
메세지 큐의 메세지 번호.
메세지 큐에 허용된 메세지 텍스트의 최대크기.
마지막 msgsnd 시스템 호출을 실행하는 프로세스의 ID.
마지막 msgrcv 시스템 호출을 실행하는 프로세스의 ID.
마지막 msgsnd 시스템 호출의 시간.
마지막 msgcv 시스템 호출의 시간.
msqid_ds 구조의 멤버를 바꾸는 마지막 시스템 호출의 시간.
시그널 설정의 접근 권한을 지정하는 ipc_perm 구조.
마지막 semop 시스템 호출의 시간.
마지막 semctl 시스템 호출의 시간.
시그널 값: 0이나 양의 정수.
증가하는 semval 를 위해 정지된 프로세스의 수.
고유메모리 구간에 접근 권한을 지정하는 ipc_perm 구조.
공유메모리 구간의 크기.
공유메모리 구간을 생성하는 프로세스의 ID.
shmatshmdt 시스템 호출을 실행하는 마지막 프로세스의 ID.
마지막 shmat 시스템 호출의 시간.
마지막 shmdt 시스템 호출의 시간.
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).

1993년 11월 1일 리눅스 0.99.13