C 程序間通訊 訊息佇列

2021-08-20 06:32:08 字數 908 閱讀 5809

訊息佇列是訊息的鏈結表,包括posix訊息佇列system v訊息佇列。有足夠許可權的程序可以向佇列中新增訊息,被賦予讀許可權的程序則可以讀走佇列中的訊息。訊息佇列克服了訊號承載資訊量少,管道只能承載無格式位元組流以及緩衝區大小受限等缺點。

//訊息佇列a

#include #include #include #include #include typedef struct msgbufmsgbuf_t;

int main()

int msg = msgget(key,ipc_creat|0664);

printf("key = %d\n",key);

if(msg==-1)

msgbuf_t mb;

mb.mtype = 3;

strcpy(mb.mtext,"this is test\n");

int s = msgsnd(msg,&mb,strlen(mb.mtext)+1,0);

if(s==-1)

return 0;

}

//訊息佇列b

#include #include #include #include #include typedef struct msgbufmsgbuf_t;

int main()

int msg = msgget(key,ipc_creat|0664);

printf("key = %d\n",key);

if(msg==-1)

msgbuf_t mb;

ssize_t s = msgrcv(msg,&mb,256,3,0);

if(s==-1)

printf("%s\n",mb.mtext);

return 0;

}

程序間訊息佇列通訊

要保證server能夠接收client的訊息,就必須保證server的生成的msg的識別符號是一樣的,也就是兩個用的key是必須一樣的。msglucy.c include include include include include include include include include ...

程序間通訊(訊息佇列)

在嵌入式linux應用開發中,linux程序通訊的方式有6種,分別是管道 pipe 及有名管道 named pipe 訊號 signal 訊息佇列 msg 共享記憶體 shm 訊號量 和套接字 socket 在這我就簡單的描述一下程序通訊中的資訊佇列 msg 首先,訊息佇列的實現有重要的幾步 1 建...

程序間通訊 訊息佇列

有三種稱作xsi ipc的ipc 訊息佇列 訊號量以及 共享記憶體。它們只見有很多的相似之處。訊息佇列是訊息的鏈結表,儲存在核心中,由訊息佇列識別符號表示。它不同於管道,其生命週期是隨核心的。訊息佇列提供了 一種從 乙個程序向另 乙個程序傳送 乙個資料塊的 方法。每個資料塊都被認為是有 乙個型別,接...