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;//当前队列消息数量 };
时间: 2024-10-13 01:42:32