Linux學習筆記 訊息佇列的接收

2021-09-10 07:58:21 字數 1055 閱讀 5670

目錄

接收訊息

舉個例子

#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 是一種應用間的通訊方式,訊息傳送後可以立即返回,有訊息系統來確保資訊的可靠專...