Programming/C
[C] shmget(), shmat()
guswlsdk
2018. 1. 19. 10:49
반응형
shmget()
공유 메모리를 생성하거나 생성된 공유 메모리를 사용할 수 있게 한다.
헤더
#include <sys / ipc.h>
#include <sys / shm.h>
형태
int shmget (key_t key , int size , int shmflg );
key_t key : 공유 메모리 식별 번호
size : 공유 메모리 크기
shmflg : 동작 옵션
IPC_CREATE : key와 일치하는 공유 메모리가 없으면 생성, 있으면 무시, | 연산자로 권한 설정 가능, 0666 : 공유 메모리 사용 권한
IPC_EXCL : key에 해당하는 공유 메모리가 있으면 -1 반환
반환 : 실패 시 -1 /성공 시 양수
shmat()
이미 할당된 공유 메모리 공간을 다른 프로세스에서 사용할 수 있게 권한을 부여하는 함수이다.
헤더
#include <sys/type.h>
#include <sys/shm.h>
형태
void *shmat(int shmid, const void *shmaddr, int shmflg);
shmid : 공유 메모리 식별 번호
shmaddr : 공유 메모리가 할당된 주소
shmflg : 동작 옵션
SHM_RND : 공유 메모리 주소를 프로세스에 맞게 따로 할당
SHM_RDONLY : 공유 메모리를 읽기 전용으로 설정
반응형