目錄
接收訊息
舉個例子
#include ssize_t msgrcv(int msgqid, void *ptr, size_t nbytes, long type, int flag);
//返回值:成功返回訊息的資料部分長度,出錯返回-1
引數:
msgqid:訊息佇列的id;
ptr:指向存放訊息的快取;
nbytes:訊息儲存的大小,不包括mtype的大小。計算方式;
nbytes = sizeof(struct mymesg) - sizeof(long)
type:訊息型別
type == 0:獲取訊息佇列中第乙個訊息;
type > 0:獲取訊息佇列中型別為type的第乙個訊息;
type < 0:獲取訊息佇列中小於或等於type絕對值的訊息。
flag:0或者ipc_nowait
**如下:
#include #include #include #include typedef structmsg;
int main(int argc, char *ar**)
key_t key = atoi(ar**[1]);
long type = atoi(ar**[2]);
int msq_id;
if((msq_id = msgget(key, 0777)) < 0)
//從訊息佇列中接收指定型別的訊息
刪除:
linux訊息佇列 Linux訊息佇列
訊息佇列,unix的通訊機制之一,可以理解為是乙個存放訊息 資料 容器。將訊息寫入訊息佇列,然後再從訊息佇列中取訊息,一般來說是先進先出的順序。可以解決兩個程序的讀寫速度不同 處理資料速度不同 系統耦合等問題,而且訊息佇列裡的訊息哪怕程序崩潰了也不會消失。最簡單的訊息記憶體的使用流程 ftok函式生...
訊息佇列學習筆記(一)
訊息佇列最常被使用的三種場景 非同步處理 流量控制和服務解耦。訊息佇列的適用範圍不僅僅侷限於這些場景,還有包括 作為發布 訂閱系統實現乙個微服務級系統間的觀察者模式 連線流計算任務和資料 用於將訊息廣播給大量接收者。簡單的說,我們在單體應用裡面需要用佇列解決的問題,在分布式系統中大多都可以用訊息佇列...
Kafka學習筆記(一) 訊息佇列
二 訊息佇列的應用場景 三 訊息佇列的缺點 四 訊息佇列的兩種模式 訊息 message 是指在應用之間傳送的資料,訊息可以非常簡單,比如只包含文字字串,也可以更複雜,可能包含嵌入物件。訊息佇列 message queue 是一種應用間的通訊方式,訊息傳送後可以立即返回,有訊息系統來確保資訊的可靠專...