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