【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);//消息队列的控制函数

     命令:

扫描二维码关注公众号,回复: 5870094 查看本文章

     ipcs -q 查看消息队列

     ipcrm -q msgid 删除消息队列

    

猜你喜欢

转载自blog.csdn.net/PinkBananA_/article/details/89228333