[Linux进程间通信]消息队列

2013-09-21  本文已影响0人  longtzw

消息队列是消息的链接表,存放在内核中并由消息队列标识符标识
每条消息由3部分组成:消息类型+消息长度+实际数据
每条新消息总是放在队列尾部

用于描述消息队列的结构体为struct msqid_ds

打开一个现存队列或创建一个新队列

int msgget(key_t key, int flag)
成功返回消息队列ID,出错返回-1

操作消息队列

int msgctl(int msqid, int cmd, struct msgid_ds *buf)
成功返回0,出错返回-1

将数据放到消息队列中

int msgsnd(int msqid, const void *ptr, 
       size_t nbytes, int flag)
成功返回0,出错返回-1

从消息队列中取消息

ssize_t msgrcv(int msqid, void *ptr, size_t nbytes, 
           long type, int flag)
成功返回消息的数据部分的长度,出错返回-1
上一篇 下一篇

猜你喜欢

热点阅读