首页 > 代码库 > 003:Posix IPC的消息队列

003:Posix IPC的消息队列

1:与FIFO相比,FIFO要求对一个管道写入之前,必须有进程进行读打开。消息队列则不需要有进行在队列上等待消息的到达。

2:POSIX每次读取总是返回优先级最高的,system V则可以返回任意优先级。

3:往一个空队列放入一个消息,POSIX允许产生一个信号,或者启动一个线程,system不可以。

4:POSIX的基本操作函数:

1 #include <mqueue.h>
2 
3 mqd_t mq_open(const char *pathname, int oflag,...); 4 5 int mq_close(mqd_t mqds); 6 7 int mq_unlink(mqd_t mqds);

 

5.mqd_t 的属性 mq_attr

struct mq_attr{

long mq_flags; //0,O_NONBLOCK阻塞还是非阻塞

long mq_maxmsg;//一个队列可存放的最大数量消息

long mq_msgsize; //一个消息最大长度

long mq_curmsga;//当前队列消息数量

};

 

003:Posix IPC的消息队列