MQ_OPEN


HOME

MQ_OPEN

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
ATTRIBUTES
CONFORMING TO
BUGS
SEE ALSO
COLOPHON

NAME

mq_open − open a message queue

SYNOPSIS

#include <fcntl.h> /* For O_* constants */
#include <sys/stat.h>
/* For mode constants */
#include <mqueue.h>

mqd_t mq_open(const char *name, int oflag);
mqd_t mq_open(const char *
name, int oflag, mode_t mode,
struct mq_attr *
attr);

Link with −lrt.

DESCRIPTION

mq_open() creates a new POSIX message queue or opens an existing queue. The queue is identified by name. For details of the construction of name, see mq_overview(7).

The oflag argument specifies flags that control the operation of the call. (Definitions of the flags values can be obtained by including <fcntl.h>.) Exactly one of the following must be specified in oflag:
O_RDONLY

Open the queue to receive messages only.

O_WRONLY

Open the queue to send messages only.

O_RDWR

Open the queue to both send and receive messages.

Zero or more of the following flags can additionally be ORed in oflag:
O_NONBLOCK

Open the queue in nonblocking mode. In circumstances where mq_receive(3) and mq_send(3) would normally block, these functions instead fail with the error EAGAIN.

O_CREAT

Create the message queue if it does not exist. The owner (user ID) of the message queue is set to the effective user ID of the calling process. The group ownership (group ID) is set to the effective group ID of the calling process.

O_EXCL

If O_CREAT was specified in oflag, and a queue with the given name already exists, then fail with the error EEXIST.

If O_CREAT is specified in oflag, then two additional arguments must be supplied. The mode argument specifies the permissions to be placed on the new queue, as for open(2). (Symbolic definitions for the permissions bits can be obtained by including <sys/stat.h>.) The permissions settings are masked against the process umask. The attr argument specifies attributes for the queue. See mq_getattr(3) for details. If attr is NULL, then the queue is created with implementation-defined default attributes.

RETURN VALUE

On success, mq_open() returns a message queue descriptor for use by other message queue functions. On error, mq_open() returns (mqd_t) −1, with errno set to indicate the error.

ERRORS

EACCES

The queue exists, but the caller does not have permission to open it in the specified mode.

EACCES

name contained more than one slash.

EEXIST

Both O_CREAT and O_EXCL were specified in oflag, but a queue with this name already exists.

EINVAL

O_CREAT was specified in oflag, and attr was not NULL, but attr−>mq_maxmsg or attr−>mq_msqsize was invalid. Both of these fields must be greater than zero. In a process that is unprivileged (does not have the CAP_SYS_RESOURCE capability), attr−>mq_maxmsg must be less than or equal to the msg_max limit, and attr−>mq_msgsize must be less than or equal to the msgsize_max limit. In addition, even in a privileged process, attr−>mq_maxmsg cannot exceed the HARD_MAX limit. (See mq_overview(7) for details of these limits.)

EMFILE

The process already has the maximum number of files and message queues open.

ENAMETOOLONG

name was too long.

ENFILE

The system limit on the total number of open files and message queues has been reached.

ENOENT

The O_CREAT flag was not specified in oflag, and no queue with this name exists.

ENOENT

name was just "/" followed by no other characters.

ENOMEM

Insufficient memory.

ENOSPC

Insufficient space for the creation of a new message queue. This probably occurred because the queues_max limit was encountered; see mq_overview(7).

ATTRIBUTES

Multithreading (see pthreads(7))
The mq_open() function is thread-safe.

CONFORMING TO

POSIX.1-2001.

BUGS

In kernels before 2.6.14, the process umask was not applied to the permissions specified in mode.

SEE ALSO

mq_close(3), mq_getattr(3), mq_notify(3), mq_receive(3), mq_send(3), mq_unlink(3), mq_overview(7)

COLOPHON

This page is part of release 3.69 of the Linux 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/.




More Linux Commands

manpages/svc_destroy.3.html
svc_destroy(3) - library routines for remote procedure calls
These routines allow C programs to make procedure calls on other machines across the network. First, the client calls a procedure to send a data packet to the s

manpages/Tcl_AppendStringsToObjVA.3.html
Tcl_AppendStringsToObjVA(3) - manipulate Tcl objects as stri
The procedures described in this manual entry allow Tcl objects to be manipulated as string values. They use the internal representation of the object to store

manpages/Tk_AllocBitmapFromObj.3.html
Tk_AllocBitmapFromObj(3) - maintain database of single-plane
These procedures manage a collection of bitmaps (one-plane pixmaps) being used by an application. The procedures allow bitmaps to be re-used efficiently, thereb

manpages/mdoc-export-msxdoc.1.html
mdoc-export-msxdoc(1) - (unknown subject) - Linux man page
mdoc export-msxdoc creates Microsoft XML Documentation (as produced by csc /doc) from the mdoc(5)-formatted documentation XML files within DIRECTORIES. OPTIONS

manpages/pdfopt.1.html
pdfopt(1) - Ghostscript PDF Optimizer - Linux manual page...
pdfopt uses gs(1) to convert the Adobe Portable Document Format (PDF) file input.pdf to a so-called optimized form in output.pdf. Optimization puts the elements

manpages/svc_sendreply.3.html
svc_sendreply(3) - library routines for remote procedure cal
These routines allow C programs to make procedure calls on other machines across the network. First, the client calls a procedure to send a data packet to the s

manpages/XF86VidModeGetViewPort.3.html
XF86VidModeGetViewPort(3) - Extension library for the XFree8
These functions provide an interface to the server extension XFree86-VidModeExtension which allows the video modes to be queried and adjusted dynamically and mo

manpages/formail.1.html
formail(1) - mail (re)formatter (Commands - Linux man page)
formail is a filter that can be used to force mail into mailbox format, perform From escaping, generate auto-replying headers, do simple header munging/extracti

manpages/irrecord.1.html
irrecord(1) - application for recording IR-codes for usage w
This program will record the signals from your remote control and create a config file for lircd. A proper config file for lircd is maybe the most vital part of

manpages/X11::Protocol::Connection::INETSocket.3pm.html
X11::Protocol::Connection::INETSocket.3pm...................
This module is used by X11::Protocol to establish a connection and communicate with a server over a TCP/IP connection, using the IO::Socket::INET module. AUTHOR

manpages/directfb-csource.1.html
directfb-csource(1) - C code generation utility for DirectFB
directfb-csource is a small utility that reads PNG (Portable Network Graphics) image files and generates C code that can be used to compile an image into a Dire

manpages/Tk_UnmaintainGeometry.3.html
Tk_UnmaintainGeometry(3) - maintain geometry of one window r
Tk_MaintainGeometry and Tk_UnmaintainGeometry make it easier for geometry managers to deal with slaves whose masters are not their parents. Three problems arise





We can't live, work or learn in freedom unless the software we use is free.