標頭檔案:sys/types.h sys/ipc.h sys/msg.h
開啟或建立訊息佇列物件
返回值:成功返回物件id,出錯範圍-1int
msgget
(ket_t ket,
int msgflag)
引數:key:建立或開啟訊息佇列的指定的key值
msgflag:設定訪問許可權
#define ipc_r 000400 讀
#define ipc_w 000200 寫和修改許可權
#define ipc_m 0100000 改變控制方式許可權
還可以附加以下引數值:
ipc_creat 沒有建立,有開啟
ipc_excl 只有不存在就建立
ipc_nowait 若操作需要等待,直接返回錯誤
從訊息佇列接受訊息
返回值:成功返回有效讀取的位元組數,失敗-1int
msgrcv
(int msgid,
void
*ptr, size_t lenght,
long type,
int flag)
;
引數:msgid:訊息佇列id
ptr:指向msgbuf的結構體指標
length:指定實際資料大小
type:指定從訊息佇列接收什麼樣的訊息
flag:ipc_nowait ,立即返回
沒設定,阻塞
從訊息佇列傳送訊息
返回值:成功返回0,出錯範圍-1int
msgsnd
(int msgid,
const coid *ptr,
,size_t len,
int msgflag)
;
引數: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.管道與...