Linux程序間通訊

2021-10-19 06:53:58 字數 1403 閱讀 9754

標頭檔案:sys/types.h sys/ipc.h sys/msg.h

開啟或建立訊息佇列物件

int

msgget

(ket_t ket,

int msgflag)

返回值:成功返回物件id,出錯範圍-1

引數:key:建立或開啟訊息佇列的指定的key值

msgflag:設定訪問許可權

#define ipc_r 000400 讀

#define ipc_w 000200 寫和修改許可權

#define ipc_m 0100000 改變控制方式許可權

還可以附加以下引數值:

ipc_creat 沒有建立,有開啟

ipc_excl 只有不存在就建立

ipc_nowait 若操作需要等待,直接返回錯誤

從訊息佇列接受訊息

int

msgrcv

(int msgid,

void

*ptr, size_t lenght,

long type,

int flag)

;

返回值:成功返回有效讀取的位元組數,失敗-1

引數:msgid:訊息佇列id

ptr:指向msgbuf的結構體指標

length:指定實際資料大小

type:指定從訊息佇列接收什麼樣的訊息

flag:ipc_nowait ,立即返回

沒設定,阻塞

從訊息佇列傳送訊息

int

msgsnd

(int msgid,

const coid *ptr,

,size_t len,

int msgflag)

;

返回值:成功返回0,出錯範圍-1

引數:msgid:訊息佇列id

ptr:指向msgbuf的結構體指標

struct msgbuf

len:以位元組為單位的待傳送訊息長度

msgflag: 0 或ipc_nowait

訊息佇列控制操作

Linux程序間通訊

程序間通訊 ipc interprocess communication 基本機制 訊號 管道及命名管道 訊息佇列 共享主存 訊號量 套接字。訊號 全稱軟中斷訊號,是在軟體層次上對中斷機制的一種模擬,它也是程序間通訊機制中唯一的非同步通訊機制。linux訊號處理函式可分為訊號安裝函式 訊號傳送函式和...

Linux程序間通訊

謝謝nonoob糾錯 我們在linux訊號基礎中已經說明,訊號可以看作一種粗糙的程序間通訊 ipc,interprocess communication 的方式,用以向程序封閉的記憶體空間傳遞資訊。為了讓程序間傳遞更多的資訊量,我們需要其他的程序間通訊方式。這些程序間通訊方式可以分為兩種 1.管道與...

Linux程序間通訊

謝謝nonoob糾錯 我們在linux訊號基礎中已經說明,訊號可以看作一種粗糙的程序間通訊 ipc,interprocess communication 的方式,用以向程序封閉的記憶體空間傳遞資訊。為了讓程序間傳遞更多的資訊量,我們需要其他的程序間通訊方式。這些程序間通訊方式可以分為兩種 1.管道與...