建立記憶體共享的幾個步驟

2021-04-15 12:55:13 字數 1456 閱讀 4097

建立共享記憶體分以下幾個步驟:

1.定義共享記憶體的結構體;

3.定義指向共享記憶體結構體的指標psharemem,利用mapviewoffile函式將剛剛建立的記憶體對映到定義指標psharemem。

讀寫共享記憶體分以下幾個步驟:

1.定義共享記憶體的結構體;

3.將共享記憶體對映為檔案指標;

4.定義指向共享記憶體結構體的指標,將共享記憶體的內容拷貝到結構體指標裡。

handle hmap;

handle haddress;

int ierrcode;

//第一步要定義所要共享的內容的結構體

typedef struct _tsharemem

tsharemem;

void createmap()

//寫共享記憶體區,將記憶體對映為檔案

psharemem = (tsharemem*)mapviewoffile(hmap, file_map_write, 0, 0, 0);

memcpy(psharemem,strshare,strshare.getlength());   

//或者**如下:strcpy(psharemem->data,szbuf);

//或者用writeproces**emory(),**如下:

//handle hprocess=::getcurrentprocess();

//writeproces**emory(hprocess,psharemem,szbuf, 256,0);

//開啟剛剛建立的共享記憶體區,

這裡可以是另外乙個程序中的**  

//讀共享記憶體區

haddress = mapviewoffile(hmap, file_map_write, 0, 0, 0);

// psharemem = (tsharemem*)mapviewoffile(hmap, file_map_write, 0, 0, 0);

if ( haddress == null )

afxmessagebox("can''t view memory map");

//對szbuf進行賦值,每個都是0

memset(szbuf,0,sizeof(szbuf));

//拷貝共享記憶體區的內容

copymemory(szbuf,haddress,255);

//或者用strcpy(szbuf, haddress);

//或者用readproces**emory

// handle hprocess=::getcurrentprocess();

// readproces**emory(hprocess,psharemem,szbuf, 256,0);

afxmessagebox(szbuf);

//最後不要忘記釋放核心物件

closehandle(hmap);

unmapviewoffile(haddress);

建立共享記憶體和操作共享記憶體幾個函式的用法

建立共享記憶體和操作共享記憶體幾個函式的用法 在建立共享記憶體和操作共享記憶體的時候被下面這些函式的引數弄糊塗了,遂查詢資料寫下各個函式的說明。所需標頭檔案 include include 函式 1 shmget key t key,int size,int shmflag 函式說明 shmget ...

orcle 建立使用者的幾個步驟

建立使用者一般分四步 第一步 建立臨時表空間 第二步 建立資料表空間 第三步 建立使用者並制定表空間 第四步 給使用者授予許可權 1.建立臨時表空間 刪除表空間 若建立錯了,可刪除重新建立 drop temporary tablespace user temp including contents ...

VC程序間共享記憶體的實現步驟

李國帥 編2007年9月 程式1 建立共享區 建立乙個有名的共享記憶體 handle 0xffffffff,0xffffffff表示建立乙個程序間共享的物件 null,page readwrite,讀寫共享0,0x1000,共享區間大小4096 t sharename void m pbasemap...