The Open Group Base Specifications Issue 7, 2018 edition
IEEE Std 1003.1-2017 (Revision of IEEE Std 1003.1-2008)
Copyright © 2001-2018 IEEE and The Open Group


mqueue.h - message queues (REALTIME)


[MSG] [Option Start] #include <mqueue.h> [Option End]


The <mqueue.h> header shall define the mqd_t type, which is used for message queue descriptors. This is not an array type.

The <mqueue.h> header shall define the pthread_attr_t, size_t, and ssize_t types as described in <sys/types.h>.

The <mqueue.h> header shall define the struct timespec structure as described in <time.h>.

The tag sigevent shall be declared as naming an incomplete structure type, the contents of which are described in the <signal.h> header.

The <mqueue.h> header shall define the mq_attr structure, which is used in getting and setting the attributes of a message queue. Attributes are initially set when the message queue is created. An mq_attr structure shall have at least the following fields:

long    mq_flags    Message queue flags. 
long    mq_maxmsg   Maximum number of messages. 
long    mq_msgsize  Maximum message size. 
long    mq_curmsgs  Number of messages currently queued. 

The following shall be declared as functions and may also be defined as macros. Function prototypes shall be provided.

int      mq_close(mqd_t);
int      mq_getattr(mqd_t, struct mq_attr *);
int      mq_notify(mqd_t, const struct sigevent *);
mqd_t    mq_open(const char *, int, ...);
ssize_t  mq_receive(mqd_t, char *, size_t, unsigned *);
int      mq_send(mqd_t, const char *, size_t, unsigned);
int      mq_setattr(mqd_t, const struct mq_attr *restrict,
             struct mq_attr *restrict);
ssize_t  mq_timedreceive(mqd_t, char *restrict, size_t,
             unsigned *restrict, const struct timespec *restrict);
int      mq_timedsend(mqd_t, const char *, size_t, unsigned,
             const struct timespec *);
int      mq_unlink(const char *);

Inclusion of the <mqueue.h> header may make visible symbols defined in the headers <fcntl.h>, <signal.h>, and <time.h>.

The following sections are informative.








<fcntl.h>, <signal.h> , <sys/types.h>, <time.h>

XSH mq_close, mq_getattr, mq_notify, mq_open, mq_receive, mq_send, mq_setattr, mq_unlink


First released in Issue 5. Included for alignment with the POSIX Realtime Extension.

Issue 6

The <mqueue.h> header is marked as part of the Message Passing option.

The mq_timedreceive() and mq_timedsend() functions are added for alignment with IEEE Std 1003.1d-1999.

The restrict keyword is added to the prototypes for mq_setattr() and mq_timedreceive().

Issue 7

Type and structure declarations are added.

End of informative text.


return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ™ is a Trademark of The IEEE.
Copyright © 2001-2018 IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]