웹개발 - PHP 프로그램 개발 강의
글수 707
공유 메모리 제어에 관한 함수 정리
1) 공유 메모리 생성
int shm_attach ( int key [, int memsize [, int perm]])
공유 메모리 세그먼트를 열거나 생성한다.
ex) shm_attach($chat, 1024, 0777);
매개변수 설명 (공유메모리의 키 값, 공유메모리의 사이즈(sysvshm.init_mem), 퍼미션 임의값 0666:8진수)
2) 공유 메모리 종료
int shm_detach ( int shm_identifier)
공유 메모리 세그먼트 접속을 종료.
Unix 시스템에서의 공유메모리는 종료 후에도 여전히 존재한다. :(
3) 공유 메모리 삭제
int shm_remove ( int shm_identifier)
위에서 말했듯이 Unix 시스템에서는 종료 후에도 여전히 데이타가 남아있다, 삭제.
4) 공유 메모리 블럭 생성
int shmop_open ( int key, string flags, int mode, int size)
공유 메모리 블럭을 열거나 생성.
"a" : 접근 (IPC_EXCL 상수로 설정) 존재하고 있는 공유 메모리 세그먼트를 여는데 이 flag를 사용.
"c" : 생성 (IPC_CREATE 상수로 설정) 새로운 공유 메모리 세그먼트를 생성하려할 때 이 flag를 사용.
ex) $shm_open = shmop_open (0x00ff, "c", 0777, 100);
매개변수 설명 (키값:10진수 또는 16진수로, "세그먼트의 열기, 생성", 퍼미션:8진수, 사이즈);
주의 : 세번째와 네번째 인자는 존재하고 있는 메모리 세그먼트를 열때는 0 을 지정해야만 한다.
5) 공유 메모리 블럭 읽기
string shmop_read ( int shmid, int start, int count)
공유 메모리 블럭으로부터 데이터를 판독.
ex) $data = shmop_read($shm_open, 0, 50);
매개변수 설명 (공유메모리 오픈 핸들(블럭아이디), 시작할offset, count:읽어낼바이트);
6) 공유 메모리 블럭의 사이즈
int shmop_size ( int shmid)
공유 메모리 블럭으로부터 총 사이즈를 읽어낸다.
ex) $size = shmop_size($shm_open);
매개변수 설명은 생략
7) 공유 메모리 블럭에 데이터 기록
int shmop_write ( int shmid, string data, int offset)
공유 메모리 블럭에 데이터를 기록한다.
ex) $shm_write = shmop_write($shm_open, "데이터를 기록한다", 0);
매개변수 설명 (공유메모리 오픈 핸들(블럭아이디), 기록할 데이타, 시작할offset)
위 코드는 "데이터를 기록한다"를 공유 메모리 블럭에 기록하고, 기록된 바이트 수를 $shm_write 에 반환한다.
8) 공유 메모리 블럭 삭제
int shmop_delete ( int shmid)
공유 메모리 블럭을 삭제한다.
ex) shmop_delete($shm_id);
매개변수 설명은 생략
9) 공유 메모리 블럭 닫기
int shmop_close ( int shmid)
공유 메모리 블럭을 닫는다.
ex) shmop_close($shm_id);
매개변수 설명은 생략
수고하셨어요~
1) 공유 메모리 생성
int shm_attach ( int key [, int memsize [, int perm]])
공유 메모리 세그먼트를 열거나 생성한다.
ex) shm_attach($chat, 1024, 0777);
매개변수 설명 (공유메모리의 키 값, 공유메모리의 사이즈(sysvshm.init_mem), 퍼미션 임의값 0666:8진수)
2) 공유 메모리 종료
int shm_detach ( int shm_identifier)
공유 메모리 세그먼트 접속을 종료.
Unix 시스템에서의 공유메모리는 종료 후에도 여전히 존재한다. :(
3) 공유 메모리 삭제
int shm_remove ( int shm_identifier)
위에서 말했듯이 Unix 시스템에서는 종료 후에도 여전히 데이타가 남아있다, 삭제.
4) 공유 메모리 블럭 생성
int shmop_open ( int key, string flags, int mode, int size)
공유 메모리 블럭을 열거나 생성.
"a" : 접근 (IPC_EXCL 상수로 설정) 존재하고 있는 공유 메모리 세그먼트를 여는데 이 flag를 사용.
"c" : 생성 (IPC_CREATE 상수로 설정) 새로운 공유 메모리 세그먼트를 생성하려할 때 이 flag를 사용.
ex) $shm_open = shmop_open (0x00ff, "c", 0777, 100);
매개변수 설명 (키값:10진수 또는 16진수로, "세그먼트의 열기, 생성", 퍼미션:8진수, 사이즈);
주의 : 세번째와 네번째 인자는 존재하고 있는 메모리 세그먼트를 열때는 0 을 지정해야만 한다.
5) 공유 메모리 블럭 읽기
string shmop_read ( int shmid, int start, int count)
공유 메모리 블럭으로부터 데이터를 판독.
ex) $data = shmop_read($shm_open, 0, 50);
매개변수 설명 (공유메모리 오픈 핸들(블럭아이디), 시작할offset, count:읽어낼바이트);
6) 공유 메모리 블럭의 사이즈
int shmop_size ( int shmid)
공유 메모리 블럭으로부터 총 사이즈를 읽어낸다.
ex) $size = shmop_size($shm_open);
매개변수 설명은 생략
7) 공유 메모리 블럭에 데이터 기록
int shmop_write ( int shmid, string data, int offset)
공유 메모리 블럭에 데이터를 기록한다.
ex) $shm_write = shmop_write($shm_open, "데이터를 기록한다", 0);
매개변수 설명 (공유메모리 오픈 핸들(블럭아이디), 기록할 데이타, 시작할offset)
위 코드는 "데이터를 기록한다"를 공유 메모리 블럭에 기록하고, 기록된 바이트 수를 $shm_write 에 반환한다.
8) 공유 메모리 블럭 삭제
int shmop_delete ( int shmid)
공유 메모리 블럭을 삭제한다.
ex) shmop_delete($shm_id);
매개변수 설명은 생략
9) 공유 메모리 블럭 닫기
int shmop_close ( int shmid)
공유 메모리 블럭을 닫는다.
ex) shmop_close($shm_id);
매개변수 설명은 생략
수고하셨어요~
2004.08.16 23:13:04 (*.36.241.139)
공유메모리를 제어할 때 사용하지요.
공유메모리의 사전적 의미입니다.
다중처리 시스템에서 여러 개의 프로세서에 의해 공유되는 주기억장치.
공유메모리의 사전적 의미입니다.
다중처리 시스템에서 여러 개의 프로세서에 의해 공유되는 주기억장치.


