NAME
mq_getattr - 获取消息队列的属性(REALTIME)
SYNOPSIS
#include <mqueue.h> int mq_getattr(mqd_t mqdes, struct mq_attr *mqstat);
Date Structure
An mq_attr structure shall have at least the following fields:
struct mq_attr {
long mq_flags; /* Flags: 0 or O_NONBLOCK */
long mq_maxmsg; /* Max. # of messages on queue */
long mq_msgsize; /* Max. message size (bytes) */
long mq_curmsgs; /* # of messages currently in queue */
};
DESCRIPTION
函数 mq_getattr() 能够获取消息队列的属性,取得的结果存放在参数 mqstat 指针指向的内存.
消息队列的4种属性如下:
mq_flags
该属性会在函数mq_open(3) 创建消息队列时被初始化. 他只有2个值O_NONBLOCK(非阻塞)和 0 (阻塞).
mq_maxmsg
消息队列中最多能容纳的消息个数.
mq_msgsize
每个消息的最大字节数.
- mq_curmsgs
- 当前消息队列中正在排队的消息个数.
PARAMETERS
①mqdes
消息队列的描述符
②mqstat
指向消息队列属性结构体的指针
RETURN VALUE
如果函数执行成功, 函数返回0
如果函数执行失败,函数返回 -1 并且设置errno,errno的种别详见下面的ERRORS一节.
ERRORS
[EBADF]
参数 mqdes 不是有效的消息队列描述符.