Linux程序通訊 訊息佇列

2021-10-09 10:26:01 字數 1066 閱讀 9114

博文

程式設計步驟

步驟程序1

程序2使用函式

1獲取到key

獲取到key

msgget

2使用key建立訊息佇列拿到訊息id

使用key獲取到訊息佇列的id

msgget

3傳送訊息

接收訊息

msgsnd/msgrev

4釋放訊息佇列

釋放訊息佇列

msgctl

例項程式

程序1:讀

int running = 1;

int msgid = -1;

struct msg_st data;

long int msgtype = 0;

//通過key獲取到msgid

msgid = msgget((key_t)1234,0666|ipc_creat);

if(msgid == -1)

while(running)

printf("you wrote:%s\n",data.text);

if(strncmp(data.text,"end",3)==0)

running = 0;

}//釋放訊息

if(msgctl(msgid,ipc_rmid,0)==-1)

exit(0);

程序1:寫

int running = 1;

int msgid = -1;

struct msg_st data;

char buffer[bufsiz];

//通過key獲取到msgid

msgid = msgget((key_t)1234,0666|ipc_creat);

if(msgid == -1)

while(running)

if(strncmp(buffer,"end",3)==0)

sleep(1);

}//釋放訊息

if(msgctl(msgid,ipc_rmid,0)==-1)

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