From acab1d58befaa8f42930bd62c26558e6005e1c13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fernando=20Apestegu=C3=ADa?= Date: Thu, 18 Feb 2021 18:53:06 +0100 Subject: [PATCH] mq_unlink(3): Add manual page Summary: Add a succinct manual page for mq_unlink Mostly borrowed from https://pubs.opengroup.org/onlinepubs/9699959099/ and hence, the disclaimer note at the bottom. PR: 243174 Reported by: rfg-freebsd@tristatelogic.com Reviewed by: gbe@, yuripv@ Approved by: gbe@ (mentor), yuripv@ Differential Revision: https://reviews.freebsd.org/D28593 --- lib/libc/sys/Makefile.inc | 1 + lib/libc/sys/mq_unlink.2 | 121 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 122 insertions(+) create mode 100644 lib/libc/sys/mq_unlink.2 diff --git a/lib/libc/sys/Makefile.inc b/lib/libc/sys/Makefile.inc index 82d16fb81b6b..9a417f4a7c74 100644 --- a/lib/libc/sys/Makefile.inc +++ b/lib/libc/sys/Makefile.inc @@ -251,6 +251,7 @@ MAN+= abort2.2 \ mq_receive.2 \ mq_send.2 \ mq_setattr.2 \ + mq_unlink.2 \ msgctl.2 \ msgget.2 \ msgrcv.2 \ diff --git a/lib/libc/sys/mq_unlink.2 b/lib/libc/sys/mq_unlink.2 new file mode 100644 index 000000000000..15b7018ae368 --- /dev/null +++ b/lib/libc/sys/mq_unlink.2 @@ -0,0 +1,121 @@ +.\" Copyright (c) 2021 Fernando Apesteguia +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice(s), this list of conditions and the following disclaimer as +.\" the first lines of this file unmodified other than the possible +.\" addition of one or more copyright notices. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice(s), this list of conditions and the following disclaimer in +.\" the documentation and/or other materials provided with the +.\" distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER(S) ``AS IS'' AND ANY +.\" EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER(S) BE +.\" LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR +.\" BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +.\" OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +.\" EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +.\" +.\" Portions 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. +.\" +.\" $FreeBSD$ +.\" +.Dd February 15, 2021 +.Dt MQ_UNLINK 2 +.Os +.Sh NAME +.Nm mq_unlink +.Nd "mq_unlink - remove a message queue (REALTIME)" +.Sh LIBRARY +.Lb librt +.Sh SYNOPSIS +.In mqueue.h +.Ft int +.Fn mq_unlink "const char *name" +.Sh DESCRIPTION +The +.Fn mq_unlink +function removes the message queue named by the string +.Fa name . +If one or more processes have the message queue open when +.Fn mq_unlink +is called, destruction of the message queue will be postponed +until all references to the message queue have been closed. +However, the +.Fn mq_unlink +call need not block until all references have been closed; it may return +immediately. +.Pp +After a successful call to +.Fn mq_unlink , +reuse of the name will subsequently cause +.Xr mq_open 2 +to behave as if no message queue of this name exists. +.Sh RETURN VALUES +.Rv -std +.Sh ERRORS +The +.Fn mq_unlink +system call +will fail if: +.Bl -tag -width Er +.It Bq Er EACCESS +Permission is denied to unlink the message queue represented by +.Fa name . +.It Bq Er EINVAL +.Fa name +is invalid. +.It Bq Er ENAMETOOLONG +The length of the +.Fa name +argument exceeds +.Brq Dv PATH_MAX +or +a pathname component is longer than +.Brq Dv NAME_MAX . +.It Bq Er ENOENT +The message queue does not exist. +.It Bq Er ENOSYS +.Xr mqueuefs 5 +module is neither loaded nor included in the kernel. +.El +.Sh SEE ALSO +.Xr mq_open 2 +.Sh STANDARDS +The +.Fn mq_unlink +system call conforms to +.St -p1003.1-2004 . +The +.Bq Er EACCESS +error code is an extension to the standard. +.Sh HISTORY +Support for POSIX message queues first appeared in +.Fx 7.0 . +.Sh COPYRIGHT +Portions 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.