共享記憶體的使用

2021-06-22 00:44:48 字數 1616 閱讀 8466

/*******************************************

*共享記憶體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 = 0;

int nloop = 10;

sem_t* mutex;

mutex = sem_open(sem_file,o_creat,0666,1);

if(mutex == sem_failed)

int fd = open(filename.c_str(),o_creat|o_rdwr,0666);

if(fd == -1)

write(fd,&count,sizeof(int));//初始資料寫入檔案

//建立共享記憶體對映,共享記憶體可讀、寫,以共享方式建立

int* ptr = (int*)mmap(null,sizeof(int),prot_read|prot_write,map_shared,fd,0);

close(fd);//關閉檔案描述符

if(fork() == 0)

exit(0);

}//parent

for(int i = 0;i < nloop;i++)

return 0;

}/*****************************************

*父子程序間共享記憶體,可以匿名記憶體對映

*,簡化步驟,mmap建立的標誌需要加上map_anon

****************************************=*/

/*******************************************

*共享記憶體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* ptr = (int*)mmap(null,sizeof(int),prot_read|prot_write,map_shared|map_anon,-1,0);

if(ptr == null)

*ptr = 0;//初始值

if(fork() == 0)

exit(0);

}//parent

for(int i = 0;i < nloop;i++)

return 0;

}

共享記憶體的使用

http download1.csdn.net down3 20070529 29183222619.chttp download1.csdn.net down3 20070529 29183246962.chttp download1.csdn.net down3 20070529 2918324...

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