共享記憶體的使用

2021-04-13 01:37:15 字數 1556 閱讀 2228

http://download1.csdn.net/down3/20070529/29183222619.chttp://download1.csdn.net/down3/20070529/29183246962.chttp://download1.csdn.net/down3/20070529/29183246962.chttp://download1.csdn.net/down3/20070529/29183246962.c 源**

是從別人的文章中抄

過來的,不是原創,不

過寫得不

錯,主要是描述兩個不同的

程序從共享記憶體中訪問資料的技

術,我加了點分析:

第乙個是寫資料:

/***** testwrite.c *******/

#include

#include

#include

#include

typedef struct people;

main(int argc, char** argv)

/*將ル集

w共享記憶體區附加到自己的記憶體段

*/p_map=(people*)shmat(shm_id,null,0);

temp='a';

for(i = 0;i<10;i++)

/*寫資料完ユ

k,將其從自己的記憶體段中

「 r除」出去

*/if(shmdt(p_map)==-1)

perror(" detach error ");}/*

讀程序首先要得到那塊記憶體

塊,這個

時候,ftok

根據檔名和id創

建的key

就很用了,步驟同

建立是一樣的

*//********** testread.c ************/

#include

#include

#include

#include

typedef struct people;

main(int argc, char** argv)

p_map = (people*)shmat(shm_id,null,0);

for(i = 0;i<10;i++)

if(shmdt(p_map) == -1)

perror(" detach error ");

}gcc -o testwriter  -g testwriter.c

gcc -o testread  -g testread.c

ipcs 察看創

建的共享記憶體

注:事實

上,ftok

函式僅僅

是根據檔名和

id生成乙個起

標識作用的

key,根據《

gnu linux

程式設計指南》說,

linux

下實現這

一函式還

有點問題

,不推薦用。於是我一般來

說都是自己定

義乙個唯一的

key,而不使用

ftok

函式。

共享記憶體的使用

共享記憶體mmap使用 date tue apr 8 14 53 43 cst 2014 include extern c using namespace std define sem file sem lock int main int argc,char argv 開啟訊號量 int count...

PHP共享記憶體的使用

php有兩套使用共享記憶體的函式,一套是system v ipc函式的封裝,另一套是shmop。這兩個都無需安裝外部庫檔案。前者只能在linux下使用,而且要使用它的話,在安裝php的時候要加上 enable sysvshm選項 而後者在linux和windows win2k之後的系統,win98不...

boost共享記憶體的使用

目錄 boos的安裝 windows 2 解壓到本地 3 編譯boost 4 vs工程屬性配置 boost共享記憶體封裝 標頭檔案cpp檔案 例項 解壓後資料夾下有個bootstrap.bat指令碼檔案 開啟cmd,進入解壓好的boost目錄,執行bootstrap.bat,此時會生成b2.exe ...