Linux—进程间通信和同步(消息队列)
目录 消息队列 1. 消息缓冲区结构 2. 结构msgid_ds 3. 结构 ipc_perm 4. 内核中的消息队列关系 5. 键值构建ftok()函数 6. 获得消息msgget()函数 7. 发送消息msgsnd()函数 8. 接收消息msgrcv()函数 9. 消息控制msgctl()函数 4. 消息队列的例子 1. 显示消息属性的函数msg_show_attr() 2. 主函数main() 消息队列 消息队列是内核地址空间中的内部链表,通过Linux内核在各个进程之间传递内容 。 消息顺序地发送到消息队列中 ,并以几种不同的方式从队列中获取, 每个消息队列可以用IPC标识符唯一地进行标识 。 内核中的消息队列是通过IPC的标识符来区别的,不同的消息队列之间是相对独立的。每个消息队列中的消息,又构成一个独立的链表。 (进程间通信— IPC( Inter-Process Communication)) 1. 消息缓冲区结构 常用的结构是msgbuf结构 。程序员 可以以这个结构为模板 定义自己的消息结构 。在头文件 <linux/msg.h> 中,它的定义如下: struct msgbuf { long mtype; char mtext[1]; }; 在结构msgbuf中有以下两个成员。 □ mtype : 消息类型 ,以 正数 来表示。 用户可以给某个消息设定一个类型 ,