Linux操作系统system V进程间通信,主要有三种:
1、消息队列;
2、信号量;
3、内存共享。
消息队列是消息的链表,存放在内核中并由消息队列标识符标识。
Linux消息队列管理:
1、创建消息队列
在使用一个消息队列前,需要使用msgget函数创建该消息队列,其函数声明:
extern int magget(key_t _key,int _msgflg) _THROW;
第一个参数key由ftok创建的key值;
第二个参数_msgflg的低位用来确定消息队列的访问权限。
2、发送消息到消息队列
extern int msgsnd(int _msqid , _const void * _msgq, size_t _msgsz , int _msgflg );
第一个参数msgid为指定的消息队列标识符(由msgget生成的消息队列标识符),即将消息添加到哪个消息队列中。
第二个参数msgq为指向的用户定义缓冲区。
第三个参数为接收消息的大小,其数据类型为:size_t,即unsigned int类型。其大小为0到系统对消息队列的限制值。
第四个参数用来执行在达到系统为消息队列所定的界限(如达到字数限制)时应采取的操作。
3、从消息队列接收信息