Message Passing [POSIX Section 15]

Functions Implemented

mqd_t mq_open( const char *name, int  oflag, ... ); 
int mq_close( mqd_t  mqdes ); 
int mq_unlink( const char *name );
int mq_send( mqd_t mqdes, const char *msg_ptr,
	     size_t msg_len, unsigned int msg_prio ); 
ssize_t mq_receive( mqd_t mqdes, char *msg_ptr,
	            size_t msg_len, unsigned int *msg_prio );
int mq_setattr( mqd_t mqdes, const struct mq_attr *mqstat,
	        struct mq_attr *omqstat ); 
int mq_getattr( mqd_t mqdes, struct mq_attr *mqstat ); 
int mq_notify( mqd_t mqdes, const struct sigevent *notification );

From POSIX 1003.1d draft:

int mq_send( mqd_t mqdes, const char *msg_ptr,
	     size_t msg_len, unsigned int msg_prio,
             const struct timespec *abs_timeout ); 
ssize_t mq_receive( mqd_t mqdes, char *msg_ptr,
	            size_t msg_len, unsigned int *msg_prio,
             const struct timespec *abs_timeout );

Notes

  • The presence of message queues is controlled by the CYGPKG_POSIX_MQUEUES option. Setting this will cause [_POSIX_MESSAGE_PASSING] to be defined and the message queue API to be made available.

  • Message queues are not currently filesystem objects. They live in their own name and descriptor spaces.

2017-02-09
Documentation license for this page: Open Publication License