IPC, 메세지 큐 생성 msgget() 함수

IT/C 언어

함수원형 int msgget(key_t ket, int msgflg)


헤더파일.

#include <sys/types.h>

#include <sys/ipc.h>

#include <sys/mgs.h>


msgget 함수key 인자 값에 연관된 메세지 큐 식별자를 반환한다. 

key의 인자로 특수한 경우로 IPC_PRIVATE를 인자로 넘겨 줄 수 있는데, 이 같은 경우는 프로세스의 개인적은 큐를 생성하고 프로세스만 이용 할 수 있도록 하는 경우이다. 


msgflg의 인자는 9개의 권한을 셋팅하는 것인데 IPC_CREAT와 해당 권한을 OR 연산으로 넘겨 줄 수 있다. IPC_CREAT를 인자로 넘겨 줄 경우 이미 메세지큐가 생성되어 있다면 무시한다. IPC_EXCL는 이미 생성된 큐가 있을 시 -1을 리턴하고 ,errno 변수에 값을 세팅한다. 

IPC_CREAT와 IPC_EXCL과 권한은 전부 OR연산으로 인자에 입력 할 수가 있다.


리턴 값

성공시 메세지 큐의 식별자 값이 반환되고, 그외 경우 -1을 반환하며 errno에 해당 에러 값이 셋팅된다.


간단한 사용 예를 살펴보자.

생성된 큐는 명령어 

$ipcs -q 시 생성된 메세지 큐 list를 볼 수 있다.


자세한 사항은 

$man msgget 시 살펴 볼 수 있다.