summaryrefslogtreecommitdiffstats
path: root/man-pages-posix-2003/man3p/mq_open.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man-pages-posix-2003/man3p/mq_open.3p')
-rw-r--r--man-pages-posix-2003/man3p/mq_open.3p200
1 files changed, 200 insertions, 0 deletions
diff --git a/man-pages-posix-2003/man3p/mq_open.3p b/man-pages-posix-2003/man3p/mq_open.3p
new file mode 100644
index 0000000..89b7404
--- /dev/null
+++ b/man-pages-posix-2003/man3p/mq_open.3p
@@ -0,0 +1,200 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "MQ_OPEN" 3P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" mq_open
+.SH PROLOG
+This manual page is part of the POSIX Programmer's Manual.
+The Linux implementation of this interface may differ (consult
+the corresponding Linux manual page for details of Linux behavior),
+or the interface may not be implemented on Linux.
+.SH NAME
+mq_open \- open a message queue (\fBREALTIME\fP)
+.SH SYNOPSIS
+.LP
+\fB#include <mqueue.h>
+.br
+.sp
+mqd_t mq_open(const char *\fP\fIname\fP\fB, int\fP \fIoflag\fP\fB,
+\&...); \fP
+\fB
+.br
+\fP
+.SH DESCRIPTION
+.LP
+The \fImq_open\fP() function shall establish the connection between
+a process and a message queue with a message queue
+descriptor. It shall create 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 \fIname\fP argument points to a string naming a message
+queue. It is unspecified whether the name appears in the file
+system and is visible to other functions that take pathnames as arguments.
+The \fIname\fP argument shall conform to the
+construction rules for a pathname. If \fIname\fP begins with the slash
+character, then processes calling \fImq_open\fP() with the
+same value of \fIname\fP shall refer to the same message queue object,
+as long as that name has not been removed. If \fIname\fP
+does not begin with the slash character, the effect is implementation-defined.
+The interpretation of slash characters other than
+the leading slash character in \fIname\fP is implementation-defined.
+If the \fIname\fP argument is not the name of an existing
+message queue and creation is not requested, \fImq_open\fP() shall
+fail and return an error.
+.LP
+A message queue descriptor may be implemented using a file descriptor,
+in which case applications can open up to at least
+{OPEN_MAX} file and message queues.
+.LP
+The \fIoflag\fP argument requests the desired receive and/or send
+access to the message queue. The requested access permission
+to receive messages or send messages shall be granted if the calling
+process would be granted read or write access, respectively,
+to an equivalently protected file.
+.LP
+The value of \fIoflag\fP is the bitwise-inclusive OR of values from
+the following list. Applications shall specify exactly one
+of the first three values (access modes) below in the value of \fIoflag\fP:
+.TP 7
+O_RDONLY
+Open the message queue for receiving messages. The process can use
+the returned message queue descriptor with \fImq_receive\fP(), but
+not \fImq_send\fP(). A message
+queue may be open multiple times in the same or different processes
+for receiving messages.
+.TP 7
+O_WRONLY
+Open the queue for sending messages. The process can use the returned
+message queue descriptor with \fImq_send\fP() but not \fImq_receive\fP().
+A message
+queue may be open multiple times in the same or different processes
+for sending messages.
+.TP 7
+O_RDWR
+Open the queue for both receiving and sending messages. The process
+can use any of the functions allowed for O_RDONLY and
+O_WRONLY. A message queue may be open multiple times in the same or
+different processes for sending messages.
+.sp
+.LP
+Any combination of the remaining flags may be specified in the value
+of \fIoflag\fP:
+.TP 7
+O_CREAT
+Create a message queue. It requires two additional arguments: \fImode\fP,
+which shall be of type \fBmode_t\fP, and
+\fIattr\fP, which shall be a pointer to an \fBmq_attr\fP structure.
+If the pathname \fIname\fP has already been used to create a
+message queue that still exists, then this flag shall have no effect,
+except as noted under O_EXCL. Otherwise, a message queue
+shall be created without any messages in it. The user ID of the message
+queue shall be set to the effective user ID of the process,
+and the group ID of the message queue shall be set to the effective
+group ID of the process. The file permission bits shall be set
+to the value of \fImode\fP. When bits in \fImode\fP other than file
+permission bits are set, the effect is
+implementation-defined. If \fIattr\fP is NULL, the message queue shall
+be created with implementation-defined default message
+queue attributes. If \fIattr\fP is non-NULL and the calling process
+has the appropriate privilege on \fIname\fP, the message
+queue \fImq_maxmsg\fP and \fImq_msgsize\fP attributes shall be set
+to the values of the corresponding members in the
+\fBmq_attr\fP structure referred to by \fIattr\fP. If \fIattr\fP is
+non-NULL, but the calling process does not have the
+appropriate privilege on \fIname\fP, the \fImq_open\fP() function
+shall fail and return an error without creating the message
+queue.
+.TP 7
+O_EXCL
+If O_EXCL and O_CREAT are set, \fImq_open\fP() shall fail if the message
+queue \fIname\fP exists. The check for the existence
+of the message queue and the creation of the message queue if it does
+not exist shall be atomic with respect to other threads
+executing \fImq_open\fP() naming the same \fIname\fP with O_EXCL and
+O_CREAT set. If O_EXCL is set and O_CREAT is not set, the
+result is undefined.
+.TP 7
+O_NONBLOCK
+Determines whether an \fImq_send\fP() or \fImq_receive\fP() waits
+for resources or messages that are not currently available, or fails
+with \fIerrno\fP set to [EAGAIN]; see \fImq_send\fP() and \fImq_receive\fP()
+for details.
+.sp
+.LP
+The \fImq_open\fP() function does not add or remove messages from
+the queue.
+.SH RETURN VALUE
+.LP
+Upon successful completion, the function shall return a message queue
+descriptor; otherwise, the function shall return
+(\fBmqd_t\fP)-1 and set \fIerrno\fP to indicate the error.
+.SH ERRORS
+.LP
+The \fImq_open\fP() function shall fail if:
+.TP 7
+.B EACCES
+The message queue exists and the permissions specified by \fIoflag\fP
+are denied, or the message queue does not exist and
+permission to create the message queue is denied.
+.TP 7
+.B EEXIST
+O_CREAT and O_EXCL are set and the named message queue already exists.
+.TP 7
+.B EINTR
+The \fImq_open\fP() function was interrupted by a signal.
+.TP 7
+.B EINVAL
+The \fImq_open\fP() function is not supported for the given name.
+.TP 7
+.B EINVAL
+O_CREAT was specified in \fIoflag\fP, the value of \fIattr\fP is not
+NULL, and either \fImq_maxmsg\fP or \fImq_msgsize\fP
+was less than or equal to zero.
+.TP 7
+.B EMFILE
+Too many message queue descriptors or file descriptors are currently
+in use by this process.
+.TP 7
+.B ENAMETOOLONG
+The length of the \fIname\fP argument exceeds {PATH_MAX} or a pathname
+component is longer than {NAME_MAX}.
+.TP 7
+.B ENFILE
+Too many message queues are currently open in the system.
+.TP 7
+.B ENOENT
+O_CREAT is not set and the named message queue does not exist.
+.TP 7
+.B ENOSPC
+There is insufficient space for the creation of the new message queue.
+.sp
+.LP
+\fIThe following sections are informative.\fP
+.SH EXAMPLES
+.LP
+None.
+.SH APPLICATION USAGE
+.LP
+None.
+.SH RATIONALE
+.LP
+None.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fImq_close\fP(), \fImq_getattr\fP(), \fImq_receive\fP(), \fImq_send\fP(),
+\fImq_setattr\fP(), \fImq_timedreceive\fP(), \fImq_timedsend\fP(),
+\fImq_unlink\fP(), \fImsgctl\fP(), \fImsgget\fP(), \fImsgrcv\fP(),
+\fImsgsnd\fP(), the Base Definitions volume of IEEE\ Std\ 1003.1-2001,
+\fI<mqueue.h>\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 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 .