K 개발자

시스템 V IPC의 공통 요소 본문

유닉스(Unix)/시스템 프로그래밍

시스템 V IPC의 공통 요소

ddingz 2021. 8. 19. 17:38

키와 식별자

시스템 V IPC에서 사용하는 키는 key_t 형으로 <sys/types.h>에 선언되어 있으며, 32비트 정수형이다.
IPC를 사용하기 위해 새로운 IPC 객체를 생성할 때 키를 지정한다.
키가 다르면 서로 다른 객체가 생성된다.
각 IPC 방법의 객체 생성 함수에서 키를 받아 새로운 IPC 객체를 생성하고, 이를 식별하는 식별자를 리턴한다.
이 식별자를 사용해 통신할 수 있다.

키 생성하기 : ftok(3)

#include <sys/ipc.h>

key_t ftok(const char *path, int id);
// path : 파일시스템에 이미 존재하는 임의의 파일의 경로명, id : 키 값을 생성할 때 지정하는 임의의 번호(1~255)

IPC 공통 구조체

시스템 V IPC를 사용하기 위해 해당 IPC의 객체를 생성하면 IPC 공통 구조체가 정의된다.
시스템 V IPC에서 공통으로 사용하는 IPC 공통 구조체는 <sys/ipc.h> 파일에 다음과 같이 정의되어 있다.

struct ipc_perm {
    uid_t uid;
    gid_t gid;
    uid_t cuid;
    gid_t cgid;
    mode_t mode;
    uint_t seq;
    key_t key;
    int pad[4];
};

시스템 V IPC 정보 검색

시스템 V IPC의 정보를 검색하고 현재 상태를 확인하는 명령은 ipcs다.
ipcs 명령을 실행하는 동안에도 IPC의 상태가 변경될 수 있다.
ipcs 명령은 검색하는 순간의 정확성만 보장한다.
상태가 변경된 정보를 보려면 ipcs 명령을 다시 수행해야 한다.

ipcs 명령의 기본 형식

ipcs [-aAbciJmopqstZ] [-D mtype]


시스템 V IPC 정보 삭제

시스템 V IPC의 정보를 검색하고 이중 불필요한 IPC 객체를 삭제하려면 ipcrm 명령을 사용한다.
ipcrm 명령의 기본 형식은 다음과 같다.

ipcrm [-m shmid] [-q msqid] [-s semid] [-M shmkey] [-Q msgkey] [-s semkey]

'유닉스(Unix) > 시스템 프로그래밍' 카테고리의 다른 글

공유 메모리  (0) 2021.08.20
메시지 큐  (0) 2021.08.19
이름 있는 파이프  (0) 2021.08.19
이름 없는 파이프  (0) 2021.08.19
sigaction 함수의 활용  (0) 2021.08.19
Comments