IPC之訊息佇列

2021-10-25 13:47:22 字數 628 閱讀 2636

一. 特點:

1.訊息佇列有特定的格式和優先順序

3.佇列裡可實現隨機查詢資訊,也可以按照資訊型別查詢(msgtpye)

二.寫出、讀入都存到乙個結構體中

struct msgbuf  ;
例如:struct msgbuf readbuf,sendbuf

三. 四個必須知道的函式:

1.得到訊息佇列識別符號或建立乙個訊息佇列物件並返回訊息佇列識別符號 int msgget(key_t key, int msg***)

2.傳送資訊 int msgsnd(int msqid, const void *msgp, size_t msgsz, int msg***)

3.接收資訊 ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,int msg***)

4.獲取和設定訊息佇列的屬性 int msgctl(int msqid, int cmd, struct msqid_ds *buf)

例:msgctl(msgid,ipc_rmid,null)//remove currently queue id

IPC之訊息佇列

訊息佇列缺點 1.如果程序建立了乙個訊息佇列,在該佇列中放入了幾則訊息,然後終止,但是該訊息佇列及其內容並不會被刪除。直到出現一下情況 某個程序呼叫msgrcv或 msgctl讀訊息或刪除訊息佇列,某個程序執行ipcrm 1 命令刪除訊息佇列,或由正在啟動的系統刪除訊息佇列。2.訊息佇列有大小限制,...

IPC之訊息佇列

可閱讀mq overview查閱更多資訊 man 7 mq overview.posix的訊息佇列實現更好,但systemv的訊息佇列更廣泛應用 舊的api posix的訊息佇列有兩種呼叫方式 庫函式和系統呼叫。訊息佇列是乙個訊息的鏈結列表,訊息都儲存在核心中,程序通過一種和共享記憶體使用的識別符號...

IPC 訊息佇列

include int msgget key t key,int msg 返回值 若成功,返回訊息佇列id 若出錯返回 1 與其他ipc機制一樣,需要提供乙個鍵值key來命名某個特定的訊息佇列。可通過ftok 來生成。msg 表示訊息佇列訪問許可權。可與兩個巨集配合進行操作 ipc creat 如果...