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 ...