1.概述
fork() 子进程会接收其父进程的消息队列描述符的副本,并且这些描述符会引用同样的打开着的消息队列的描述。子进程不会
继承其父进程的任何消息通知注册。
当一个进程执行了 exec() 或终止时,所有其打开的消息队列描述符会被关闭。关闭消息队列描述符的结果是进程在相应队列上
的消息通知注册会被注销。
2.描述符和消息队列之间的关系
消息队列描述符和打开着的消息队列之间的关系与文件描述符和打开着的文件描述符之间的关系类似。消息队列描述符是一个进程级别的
句柄,它引用了系统层面的打开着的消息队列描述符中的一个条目,而该条目则引用了一个消息队列对象。
3.Posix 和 System V 消息队列比较
Posix IPC 接口更加简单,且与传统 Unix 文件模型更加一致,同时 Posix IPC 对象是引用计数的,这样简化了确定何时删除一个对象的任务。
Posix 优势:
1.消息通知允许一个进程能够在一条消息进入之前为空的队列时异步的通知信号或线程的实例化来接收通知。
2.在 Linux 上可以使用 poll(), select(), 以及 epoll() 来监控Posix 消息队列。System V 没有这个特性
Posix 劣势:
1.可移植性比较差
2.与Posix 消息队列严格按照优先级排序相比,System V 消息队列能够根据类型来选择消息的功能的灵活性更强。
mq_open();
mq_send();
mq_receive();
mq_close();
mq_unlink();
mq_getattr();
mq_setattr();
mq_notify();
mq_timedsend();
mq_timedreceive();








































相关文章:
-
2021-08-12
-
2021-09-05
-
2021-09-19
-
2021-08-23
-
2021-12-02