消息队列提供了从一个进程向另外一个进程发送一块数据的方法,每个数据块认为有一个类型(通俗说法是一个通道),但是接受通道与发送通道必须一致才能实现通信。消息队列的不足之处在于每个消息最大长度有限度,每个消息队列总字节数有限制,系统的消息队列有限制。
命令:
cat /proc/sys/kernel/msgmax :查看一条信息最大有多大
cat /proc/sys/kernel/msgmnb :查看消息队列中信息最大有多大
cat /proc/sys/kernel/msgmni :查看系统中消息队列最大有多大
命令 ipcs -q :查看消息队列
命令 ipcrm -Q 消息队列名:删除消息队列
任务:创建一个消息队列、往消息队列中发数据、在消息队列中取数据、删除消息队列(在内核中删除这个对象)
(1)创建一个消息队列:
- int main()
- 8 {
- 9 int id=msgget(1234,IPC_CREAT|0644);//创建一个消息队列,名字为1234
- 10 if(id==-1)
- 11 {
- 12 perror("msgget failure\n");
- 13 exit(0);
- 14 }
- 15 printf("creat is ok\n"</

本文详细介绍了Linux环境下如何操作消息队列,包括查看消息队列状态、创建、发送数据、接收数据以及删除消息队列的步骤和示例代码。通过msgget、msgsnd、msgrcv和msgctl等系统调用实现对消息队列的管理。


被折叠的 条评论
为什么被折叠?



