|
NAMEmq_open —
open a message queue (REALTIME)
LIBRARYPOSIX Real-time Library (librt, -lrt)SYNOPSIS#include <mqueue.h>
mqd_t
DESCRIPTIONThemq_open () system call establishes the connection
between a process and a message queue with a message queue descriptor. It
creates an open message queue description that refers to the message queue,
and a message queue descriptor that refers to that open message queue
description. The message queue descriptor is used by other functions to refer
to that message queue. The name argument points to a
string naming a message queue. The name argument should
conform to the construction rules for a pathname. The
name should begin with a slash character. Processes
calling mq_open () with the same value of
name refers to the same message queue object, as long as
that name has not been removed. If the name argument is
not the name of an existing message queue and creation is not requested,
mq_open () will fail and return an error.
The oflag argument requests the desired receive and/or send access to the message queue. The requested access permission to receive messages or send messages would be granted if the calling process would be granted read or write access, respectively, to an equivalently protected file. The value of oflag is the bitwise-inclusive OR of values from the following list. Applications should specify exactly one of the first three values (access modes) below in the value of oflag:
Any combination of the remaining flags may be specified in the value of oflag:
The NOTESFreeBSD implements message queue based on file descriptor. The descriptor is inherited by child after fork(2). The descriptor is closed in a new image after exec(3). The select(2) and kevent(2) system calls are supported for message queue descriptor.Please see the mqueuefs(5) man page for instructions on loading the module or compiling the service into the kernel. RETURN VALUESUpon successful completion, the function returns a message queue descriptor; otherwise, the function returns (mqd_t)-1 and sets the global variable errno to indicate the error.ERRORSThemq_open () system call will fail if:
SEE ALSOmq_close(2), mq_getattr(2), mq_receive(2), mq_send(2), mq_setattr(2), mq_timedreceive(3), mq_timedsend(3), mq_unlink(3), mqueuefs(5)STANDARDSThemq_open () system call conforms to
IEEE Std 1003.1-2004 (“POSIX.1”).
HISTORYSupport for POSIX message queues first appeared in FreeBSD 7.0.BUGSThis implementation places strict requirements on the value of name: it must begin with a slash (‘/ ’) and contain no other slash
characters.
The mode and attr arguments are variadic and may result in different calling conventions than might otherwise be expected. COPYRIGHTPortions of this text are reprinted and reproduced in electronic form from IEEE Std 1003.1, 2004 Edition, Standard for Information Technology -- Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2004 by the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the event of any discrepancy between this version and the original IEEE and The Open Group Standard, the original IEEE and The Open Group Standard is the referee document. The original Standard can be obtained online at http://www.opengroup.org/unix/online.html.
Visit the GSP FreeBSD Man Page Interface. |