訊息佇列是訊息的鏈式佇列
1 建立訊息佇列
#include
#include
#include
int msgget(key_t key, int msg***);
2 訊息佇列屬性控制
int msgctl(int msqid, int cmd, struct msqid_ds *buf);
3 傳送資訊到訊息佇列
int msgsnd(int msqid, const void *msgp, size_t msgsz, int msg***);
4 從訊息佇列接收資訊
ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msg***);
//msgtyp = 0 收到佇列中第一條訊息,任意型別
//msgtyp > 0 收到第一條msgtyp型別的訊息
//msgtyp < 0 收到第一條最低型別(小於或等於msgtyp的絕對值)的訊息。
struct msgbuf
;//mtype 是乙個正整數,由產生訊息的程序生成,用於表示訊息的型別。
//mtext 是文字內容,即訊息內容
簡單例項
傳送者**
#include
#include
#include
#include
#include
#include
#include
#define bufsize 128
struct msg_buf
;int main(int argc,char* argv)
if((msgid = msgget(key,0666|ipc_creat)) == -1)
while(1)
if(strncmp(buf,"end",3) == 0)
}return 0;
}接收者**
#include
#include
#include
#include
#include
#include
#include
#define bufsize 128
struct msg_buf
;int main(int argc,char* argv)
if((msgid = msgget(key,0666|ipc_creat)) == -1)
while(1)
printf("receiver message:%s",msg_rcv.msg);
if(strncmp(msg_rcv.msg,"end",3) == 0)
}if(msgctl(msgid,ipc_rmid,0) == -1)
return 0;
}
Linux程序通訊 訊息佇列
1.訊息佇列 訊息佇列也稱為報文佇列,訊息佇列是隨核心持續的,只有在核心重起或顯示刪除乙個訊息佇列時,該訊息佇列才會真正刪除 系統中記錄訊息佇列的資料結構struct ipc ids msg ids位於核心中,系統中所有訊息佇列都可以在結構msg ids中找到訪問入口 訊息佇列其實就是乙個訊息的鍊錶...
linux訊息佇列程序通訊
訊息佇列 也叫做報文佇列 是unix系統v版本中3種程序間通訊機制之一。另外兩種是訊號燈和共享記憶體。這些ipc機制使用共同的授權方法。只有通過系統呼叫將標誌符傳遞給核心之後,程序才能訪問這些資源。這種系統ipc物件使用的控制方法和檔案系統非常類似。使用物件的引用標誌符作為資源表中的索引。訊息佇列就...
linux 程序 訊息佇列通訊
1.概述 該demo主要實現linux下程序之間的訊息佇列通訊,相關介面介紹可以參考 2.場景 半雙工 父程序簡單地通過訊息佇列將資料傳送給子程序 3.測試 程序程式設計demo 訊息佇列 ipc相關的命令 ipcs ipcrm 釋放ipc 檢視程序屬性 ulimit a include inclu...