[Go to CFHT Home Page] Man Pages
Back to Software Index  BORDER=0Manpage Top Level
    mq_unlink(3R) manual page Table of Contents

Name

mq_unlink - remove a message queue

Synopsis

cc [ flag ... ] file ... -lposix4 [ library ... ]

#include <mqueue.h>

int mq_unlink(const char *name);

MT-Level

MT-Safe

Description

mq_unlink() removes the message queue named by name. After a successful call to mq_unlink() with name, a call to mq_open(3R) with the same name will fail if the flag O_CREAT is not set in flags. If one or more processes have the message queue open when mq_unlink() is called, destruction of the message queue is postponed until all references to the message queue have been closed. Calls to mq_open(3R) to re-create the message queue may fail until the message queue is actually removed. However, mq_unlink() does not block (wait) until all references have been closed; it returns immediately.

Return Values

Upon successful completion, mq_unlink() returns a value of 0; otherwise, the named message queue is not changed by this function call, the function returns a value of -1 and sets errno to indicate the error condition.

Errors

EACCESS
Permission is denied to unlink the named message queue.
ENAMETOOLONG
The length of the name string exceeds {PATH_MAX}, or a pathname component is longer than {NAME_MAX} while _POSIX_NO_TRUNC is in effect.
ENOENT
The named message queue, name, does not exist.
ENOSYS
mq_unlink() is not supported by this implementation.

See Also

mq_close(3R) , mq_open(3R)

Bugs

In Solaris 2.5, these functions always return -1 and set errno to ENOSYS, because this release does not support the Message Passing option. It is our intention to provide support for these interfaces in future releases.


Table of Contents