ipcs
: 커널 공간에 어떤 IFC가 생성되어 있는 지 확인하는 명령어
shared memory
: kernel에 메모리 공간을 만들고, 해당 공간을 변수처럼 쓰는 방식
해당 메모리 주소를 변수처럼 사용한다.
공유 메모리의 key를 가지고 여러 프로세스가 접근 가능하다.
공유 메모리 키 생성
int shmget(key_t key, size_t size, int shmflg);
(이걸 shmid에 넣으면 된다.)
공유 메모리 연결
int *shmat (int shmid, const void *shmaddr, int shmflg)
//shmid : shmget으로 생성한 식별자
//shmaddr : 연결 주소 (char *(NULL) 로 생성하면 알아서 찾아간다.)
//shmflg
//리턴값 : 성공 시 연결된 공유 메모리의 시작 주소를 리턴한다.
공유 메모리 해제
int shmdt(char *shmaddr);
공유 메모리 읽기
printf("%s\n", (char *)shmaddr);
공유 메모리 쓰기
strcpy((char *)shmaddr, "Linux Programming");
공유 메모리 삭제
int shmctl(int shmid, int cmd, struct shmid_ds *buf);
댓글