나의 기록, 현진록

[C] shmget(), shmat() 본문

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 : 공유 메모리를 읽기 전용으로 설정

반응형