LINUX學習筆記15 程序間通訊4訊息佇列

2021-12-29 16:24:30 字數 1297 閱讀 2917

a)         本質:訊息鍊錶

b)         分類:

1.         posix訊息佇列:可移植作業系統介面

2.         系統v:隨核心持續的,只有在核心重啟和人工刪除,才會被刪除。每個訊息佇列對應唯一的鍵值

c)         獲取鍵值:key_t ftok(char *pathname, char proj)

1.         作用:返回檔名對應的鍵值,本質是個檔案

2.         #include, #include

3.         pathname:檔名

4.         proj:專案名,不為0即可

d)         獲取描述字:int msgget(key_t key, int msg***)

1.         #include, #include,#include

2.         key:鍵值,由ftok獲得

3.         msg***:標誌位

a)         ipc_creat:若沒有鍵值對應的訊息佇列,建立新的訊息佇列

b)         ipc_excl:與ipc_creat一同使用,若存在返回錯誤

c)         ipc_nowwait:無法滿足時,不阻塞

4.         返回值:檔案描述符msgid

e)         傳送訊息:int msgsnd(int msqid, struct msgbuf *msgp, int msgsz, int msg***)

1.         #include, #include,#include

2.         msqid:訊息佇列描述符

3.         msgp:存放訊息的結構:

a)         struct msgbuf

b)           訊息資料首位址

4.         msgsz:長度

5.         msg***:標誌,ipc_nowait:指明在訊息佇列沒有足夠空間容納要傳送的訊息的時候,是否等待

f)          接收訊息:int msgrcv(int msqid, struct msgbuf *msgp, int msgsz,long msgtype, int msg***)

1.         作用:從訊息佇列中讀取msgtype型別的訊息,訊息被讀取之後就沒有了。

2.         其它同上:

3.         訊息長度:length=sizeof(struct mymsgbuf)-sizeof(long)

Linux學習筆記(程序間通訊)

ipc 程序間通訊 linux下的多個程序間的通訊機制叫做ipc,它是多個程序之間進行相互溝通的一種方法。通過程序間通訊可以實現不同程序之間傳播和交換資訊。程序間通訊的目的 1.資料傳輸 2.資源共享 3.乙個程序需要向另乙個或一組程序傳送訊息,通知它或它們發生了某種事件 4.程序控制 程序間通訊的...

Linux程序間通訊 IPC 學習筆記。

ipc interprocess communication 程序間通訊 一 管道 1.無名管道 開啟與關閉管道 include int pipe int filedes 2 filedes 0 用於讀出資料,讀取時必須關閉寫入端,即close filedes 1 filedes 1 用於寫入資料,...

MFC sendmessage實現程序間通訊

用sendmessage實現程序間通訊。實現方式是傳送wm copydata訊息。傳送程式 lresult copydataresult cwnd potherwnd cwnd findwindow null,卡口管理 cstring strdatatosend 0dae12a3d8c9425daa...