linux应用基础知识点13-IPC之消息队列

linux应用基础知识点13-IPC之消息队列

消息队列可以理解为一个消息链表,一个进程可以往该链表的尾部添加特定格式的数据,另一个进程可以从头部取出数据或者按消息的类型取出数据。

消息队列和管道的区别:
1 . 管道在写入时,必须同时读取,否则会阻塞;消息队列则没有要求。
2 . 管道在关闭或进程结束时,数据会丢失;消息队列的生命周期跟随内核,关闭后仍存在。

相关函数
POSIX和System V均提供了消息队列的实现函数,Linux将两种实现方式均吸纳为己所用。

POSIX的函数:mq_open mq_close mq_send mq_receive
SystemV的函数:msgget msgsnd msgrcv msgctl

补充:POSIX即可移植操作系统接口,全称Portable Operating System Interface。由于早期UNIX版本混乱、软件移植困难,于是IEEE开发了POSIX,由ANSI和OSI进行标准化该操作系统接口。

你可能感兴趣的:(linux应用开发-基础,linux)