C語言消息隊列


msgsnd.c文件

 1 #include<sys/types.h>
 2 #include<sys/ipc.h>
 3 #include<sys/msg.h>
 4 #include<stdio.h>
 5 
 6 struct msgbuf
 7 {
 8     long type;//類型          
 9     char buf[1024];
10 };
11 
12 int main()
13 {
14     int msgid;
15     msgid=msgget(0x1000,IPC_CREAT | 0777);
16     struct msgbuf mb={1,"hello world"};
17     int ret;
18     ret=msgsnd(msgid,&mb,sizeof(struct msgbuf)-sizeof(long),0);
19     //這里的長度不包括類型的大小
20 }

msgrcv.c文件

 1 #include<sys/types.h>
 2 #include<sys/ipc.h>
 3 #include<sys/msg.h>
 4 #include<stdio.h>
 5 struct msgbuf
 6 {
 7     long type;
 8     char buf[1024];
 9 };
10 int main()
11 {
12     int msgid;
13     msgid=msgget(0x1000,IPC_CREAT | 0777);
14     struct msgbuf mb;
15     msgrcv(msgid,&mb,sizeof(struct msgbuf)-sizeof(long),1,0);
16     puts(mb.buf);
17 }

gcc msgsnd.c -o msgsnd      gcc msgrcv.c -o msgrcv 

ipcs查看消息隊列

./msgsnd   然后 ipcs

已經傳入,然后./msgrcv

ipcs查看一下

取出數據


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM