引用「程序通訊」

2021-04-12 12:55:37 字數 1723 閱讀 8470

下面是建立共享記憶體的程序中的一段**:

if(getlasterror() == error_already_exists)

lpbyte lpdata = (lpbyte)mapviewoffile(hfile, file_map_write, 0, 0, 0);

if(!lpdata)

tchar buf[1024] = "filemap bbb";

memcpy(lpdata, buf, sizeof(buf));

//unlaod

/*if(lpdata)

unmapviewoffile(lpdata);

if(hfile)

closehandle(hfile);*/}

下面是一段使用共享記憶體的程序中的一段**:

lpbyte lpdata = (lpbyte)mapviewoffile(hfile, file_map_read, 0, 0, 0);

if(!lpdata)

tchar buf[1024];

memset(buf, 0, sizeof(buf));

memcpy(buf, lpdata, sizeof(buf));

afxmessagebox(buf);

if(lpdata)

unmapviewoffile(lpdata);

if(hfile)

closehandle(hfile);

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

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());   

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

//讀共享記憶體區

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");

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

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

copymemory(szbuf,haddress,255);

afxmessagebox(szbuf);

}

程序通訊 程序管道

程序間通訊的幾種常用方式 管道 命名管道 訊號 訊號量 共享記憶體 訊息佇列 套接字。管道 pipe 一種半雙工的通訊方式,資料只能單向流動且只能在具有共同祖先的程序間使用。命名管道 name pipe 也是一種半雙工的通訊方式,但他允許不相關程序間的通訊。訊號 sinal 一個程序通過訊號通知其他...

程序與程序通訊

程序是可執行的程式的例項,包含兩部分,一部分是作業系統用來管理程序的核心物件,一部分是建立時系統分配的資源,主要是記憶體地址空間。2 程序通訊方法 在一個程序內建立記憶體對映,卻能夠在其他都個程序中使用。這些程序共享的是物理儲存器的同一個頁面,在把這些實體記憶體對映到虛擬記憶體時各個程序的虛擬地址並...

php程序間通訊 yoc PHP程序間通訊

php是用c編寫的,因此它對系統底層api的操作與c很像,同大多數語言一樣,php程序間通訊的方式有以下幾種 訊息佇列,管道,共享記憶體,socket和訊號。本文是對這幾種通訊方式對整理 管道通訊pipe 管道用於承載簡稱之間的通訊資料。為了方便理解,可以將管道比作檔案,程序a將資料寫到管道p中,然...

程序通訊之管道通訊

管道通訊有一個特點 通訊是半雙工的,即管道的一端只能讀或者只能寫 管道通訊可以分為 匿名管道通訊和命名管道通訊兩種 1.匿名管道通訊 適合用於父子程序間的通訊 include include include 匿名管道通訊,本機父子程序通訊方式 int main else waitpid pid,nu...

程序通訊 管道通訊

程序間通訊 目的 資料傳輸 一個程序需要將它的資料傳送給另一個程序 資源共享 多個程序之間共享同樣的資源 通知事件 一個程序需要向另一個或一組程序傳送訊息,通知它們發生了某種事件 程序控制 有些程序希望完全控制另一個程序的執行 如debug程序 此時控制程序希望能夠攔截另一個程序的所有操作,並能夠及...