【Linux系统编程】进程间通讯--消息队列

     多进程在进行通讯时,有时可能需要数据的定向发送。比如进程A向管道文件中写入数据"helloworld",意将"hello"发送给进程B,将"world"发送给进程C,怎么做到呢?这就需要消息队列。

     消息队列的特点:

     1.消息队列是消息的链表,具有特定的格式:类型+数据。存放在内存中,由消息队列标识符标识。

     2.消息队列允许一个或者多个进程写入或读取消息。

     3.消息队列可实现消息的随机查询,也可按照类型进行读取。在同一类型上符合先进先出的规定。

     API接口:

     int msgget((key_t)key,int flag);//创建或获取一个消息队列,返回内核对象的标识符

     int msgsnd(int msgid,const void* ptr,int datalen,int flag);//把消息添加到消息队列中

     int msgrcv(int msgid,void* ptr,int size,long type,int flag);//从消息队列中获取消息

     int msgctl(int msgid,int cmd,struct msgid_ds* buff);//消息队列的控制函数

     命令:

     ipcs -q 查看消息队列

     ipcrm -q msgid 删除消息队列

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值