进程间通信之消息队列

       进程间通信包括管道、消息队列、信号量和共享内存。消息队列提供了一种从一个进程向另一个进程发送数据块的方法。每个数据块都被认为是有一个类型,接收者进程接收的数据块可以有不同的类型值。可通过发送消息来避免命名管道的同步和阻塞问题

   通常使用:

   ipcs -q         查看消息队列

   ipcrm -q msgid  删除消息队列

   消息队列的基本操作(加载两个进程)如下:

程序代码:

comm.h


comm.c



server.c


client.c


测试:



进程通信之消息队列的特点:

(1)ipc资源的生命周期为“随内核”,且必须显式删除,而管道的生命周期是“随进程”,进程结束,则管道也结束;

(2)可用于非父子进程间通信;

(3)与管道不同的是,管道是基于字节流的,而消息队列是基于消息的,同时,消息队列的读取不一定是先入先出;

(4)与管道有相同的不足之处在于每个消息的最大长度是有上限的,每个消息队列总的字节数是有上限的,系统上消息队列的总数也有一个上限。

     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值