.\" the source, must acknowledge the copyright and authors of this work.
.\" %%%LICENSE_END
.\"
-.TH MQ_OPEN 3 2009-02-20 "Linux" "Linux Programmer's Manual"
+.TH MQ_OPEN 3 2014-12-31 "Linux" "Linux Programmer's Manual"
.SH NAME
mq_open \- open a message queue
.SH SYNOPSIS
in
.IR oflag :
.TP
-.B O_NONBLOCK
-Open the queue in nonblocking mode.
-In circumstances where
-.BR mq_receive (3)
-and
-.BR mq_send (3)
-would normally block, these functions instead fail with the error
-.BR EAGAIN .
+.BR O_CLOEXEC " (since Linux 2.6.26)"
+.\" commit 269f21344b23e552c21c9e2d7ca258479dcd7a0a
+Set the close-on-exec flag for the message queue descriptor.
+See
+.BR open (2)
+for a discussion of why this flag is useful.
.TP
.B O_CREAT
Create the message queue if it does not exist.
user ID of the calling process.
The group ownership (group ID) is set to the effective group ID
of the calling process.
-.\" In reality the file system IDs are used on Linux.
+.\" In reality the filesystem IDs are used on Linux.
.TP
.B O_EXCL
If
.I name
already exists, then fail with the error
.BR EEXIST .
+.TP
+.B O_NONBLOCK
+Open the queue in nonblocking mode.
+In circumstances where
+.BR mq_receive (3)
+and
+.BR mq_send (3)
+would normally block, these functions instead fail with the error
+.BR EAGAIN .
.PP
If
.B O_CREAT
(Symbolic definitions for the permissions bits can be obtained by including
.IR <sys/stat.h> .)
The permissions settings are masked against the process umask.
+
The
.I attr
argument specifies attributes for the queue.
.I attr
is NULL, then the queue is created with implementation-defined
default attributes.
+Since Linux 3.5, two
+.I /proc
+files can be used to control these defaults; see
+.BR mq_overview (7)
+for details.
.SH RETURN VALUE
On success,
.BR mq_open ()
.I queues_max
limit was encountered; see
.BR mq_overview (7).
+.SH ATTRIBUTES
+.SS Multithreading (see pthreads(7))
+The
+.BR mq_open ()
+function is thread-safe.
.SH CONFORMING TO
POSIX.1-2001.
.SH BUGS
.BR mq_send (3),
.BR mq_unlink (3),
.BR mq_overview (7)
+.SH COLOPHON
+This page is part of release 3.79 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.