본문 바로가기

os/리눅스

리눅스 명령어 ipcs , 메모리 관련 함수 그리고 코딩

ipcs 명령은 IPC 상태를 조회하는데 사용된다.
IPC(Inter Process Communication) 에는 message queue(-q) shared mem(-m) semaphore(s) 의 자원을 사용하는데 이 자원들의 상태를 보여준다.()안은 하부명령어

자원의 반납은 ipcrm(IPC remove)명령.

공유메모리란 원래 하나의 프로세스는 해당 하는 한개(?)의 메모리를 갖는다. 하지만 공유메모리를 사용하게 되면 여러 프로세스들이 한개의 메모리를 말 그대로 공유할 수 있게된다. 프로세스가 그 메모리를 쓸때 자신에게 붙이고, 쓰지 않을때는 버리게된다.

int shget ( key_t key, int size, int shmflg );

이 함수는 공유메모리의 id를 리턴하는 함수이다. key는 말 그대로 key값, size도, shmflg는 권한이다.

IPC_CREATE| 와 함께 사용한다. IPC_CREATE는 커널에 세그먼트가 없다면 새롭게 만든다. 

int shmat ( int shmid, char *shmaddr, int shmflg);

이 함수는 shget을 통해 얻은 id에 해당하는 메모리주소를 리턴하는 함수이다.

shmid는 첫번째 함수로 얻은 id값을 써주고 두번째와 세번째 인자값에는 보통 NULL,0 을 쓴다고 한다.

NULL,0 을 쓰게되면 커널에 매핑되지 않은 지역을 자동으로 찾는다고 한다.

#include <stdio.h>
#iinclude <sys/shm.h>
#include <sys/ipc.h>

int main(){

int  shmadrr;
char *shmid;

shmid = shmget(key_t의 값, 메모리 size, 파라미터값-메모리고유파라미터아닐까?);
shmadrr = shmat(shmid, NULL, 0);

printf("%s", shmadrr);

return 0;



}

 


'os > 리눅스' 카테고리의 다른 글

httpd 설정  (0) 2009.10.14
vsftpd 설정  (0) 2009.10.14
fedora ifconfig sevice command not found  (0) 2009.10.10
Ubuntu nabi 설치  (0) 2009.10.07
레드햇 9.0 한글 깨짐 !!!  (0) 2009.10.06