linux 程序 訊息佇列通訊

2021-10-04 01:56:35 字數 1523 閱讀 8740

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