1. 概述:
該demo主要實現linux下程序之間的訊息佇列通訊, 相關介面介紹可以參考<2. 場景(半雙工):
父程序簡單地通過訊息佇列將資料傳送給子程序
3. 測試:
程序程式設計demo(訊息佇列)
ipc相關的命令: ipcs ipcrm(釋放ipc)
檢視程序屬性: ulimit -a
*/#include
#include
#include
#include
#include
#include
#include
#include
#include
#define msg_id 1
#define msg_type 2
#define max_buf 64
/*訊息的資料結構有一定的要求, 一定要是以乙個長整型成員變數開始的結構體
*/struct msg_st
;int
main
(int argc,
char
**ar**)
/* 父 -> 子
*/pid =
fork()
;if(pid <0)
return-1
;}else
if(pid ==0)
printf
("child process msgrcv\t msg_type = %ld\t buf = %s\n"
, msg.msg_type, msg.buf);}
else
printf
("parant process msgsnd\t msg_type = %ld\t buf = %s\n"
, msg.msg_type, msg.buf)
;wait
(null);
/* 從系統核心中移走訊息佇列
*/if(
msgctl
(msgid, ipc_rmid,0)
<0)
}return0;
}
#makefile
cc :
= gcc
include =
-i /home/demo/include/
all:
$(cc) demo_process_ipc_msgget.c $(include)
-o demo_process_ipc_msgget -wall -werror
clean:
rm demo_process_ipc_msgget
Linux程序通訊 訊息佇列
1.訊息佇列 訊息佇列也稱為報文佇列,訊息佇列是隨核心持續的,只有在核心重起或顯示刪除乙個訊息佇列時,該訊息佇列才會真正刪除 系統中記錄訊息佇列的資料結構struct ipc ids msg ids位於核心中,系統中所有訊息佇列都可以在結構msg ids中找到訪問入口 訊息佇列其實就是乙個訊息的鍊錶...
linux訊息佇列程序通訊
訊息佇列 也叫做報文佇列 是unix系統v版本中3種程序間通訊機制之一。另外兩種是訊號燈和共享記憶體。這些ipc機制使用共同的授權方法。只有通過系統呼叫將標誌符傳遞給核心之後,程序才能訪問這些資源。這種系統ipc物件使用的控制方法和檔案系統非常類似。使用物件的引用標誌符作為資源表中的索引。訊息佇列就...
Linux程序通訊 訊息佇列
博文 程式設計步驟 步驟程序1 程序2使用函式 1獲取到key 獲取到key msgget 2使用key建立訊息佇列拿到訊息id 使用key獲取到訊息佇列的id msgget 3傳送訊息 接收訊息 msgsnd msgrev 4釋放訊息佇列 釋放訊息佇列 msgctl 例項程式 程序1 讀 int ...