2 .\" Copyright 2000 Massachusetts Institute of Technology
4 .\" Permission to use, copy, modify, and distribute this software and
5 .\" its documentation for any purpose and without fee is hereby
6 .\" granted, provided that both the above copyright notice and this
7 .\" permission notice appear in all copies, that both the above
8 .\" copyright notice and this permission notice appear in all
9 .\" supporting documentation, and that the name of M.I.T. not be used
10 .\" in advertising or publicity pertaining to distribution of the
11 .\" software without specific, written prior permission. M.I.T. makes
12 .\" no representations about the suitability of this software for any
13 .\" purpose. It is provided "as is" without express or implied
16 .\" THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS
17 .\" ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE,
18 .\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 .\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT
20 .\" SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 .\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 .\" LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 .\" USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 .\" ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25 .\" OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26 .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
29 .\" $FreeBSD: src/lib/libc/gen/shm_open.3,v 1.3.2.5 2001/12/14 18:33:51 ru Exp $
37 .Nd POSIX shared memory object operations
44 .Fn shm_open "const char *path" "int flags" "mode_t mode"
46 .Fn shm_unlink "const char *path"
50 function opens (or optionally creates) a
52 shared memory object named
56 function removes a shared memory object named
60 allows unrelated processes to access the same object.
61 .Sh IMPLEMENTATION NOTES
68 shared memory objects are implemented as ordinary files under
74 functions act as wrappers around
80 characters are removed from
82 to make it relative to
88 arguments are passed through unaltered.
90 is checked to ensure that the access mode specified is not
92 (which is not defined for shared memory objects).
98 of a descriptor returned by
102 flag had been specified to
104 (It does so by setting a special file flag using
109 returns a non-negative integer;
112 Both functions return -1 on failure, and set
114 to indicate the error.
118 and many other operating systems the
120 argument is interpreted as a file system pathname under a special
121 directory where a memory-backed file system is mounted.
122 Most operating systems do some name mangling to
124 Leading slashes are commonly removed to turn an absolute pathname into
126 Problematic characters may be escaped and there may be a length limit on
128 On some systems the mangled pathname is completely different from the
131 On a few systems, shared memory objects live outside the ordinary file
132 system in their own dedicated namespace.
136 two processes opening the same
138 are guaranteed to access the same shared memory object if and only if
141 The most portable form of pathname is probably
143 i.e.\& one leading slash, no other slashes and no dots.
147 on the pathname of a shared memory object,
152 on a file descriptor returned by
156 It is also undefined whether the shared memory object itself, or its
157 contents, persist across reboots.
160 and most other systems they do not.
168 flags may be used in portable programs.
174 functions can fail with any error defined for
179 In addition, the following errors are defined for
185 is not a shared memory object
186 (i.e., it is not a regular file).
192 specifies an access mode of
206 functions are believed to conform to
213 functions first appeared in
216 .An Garrett A. Wollman Aq Mt wollman@FreeBSD.org
217 (C library support and this manual page)
218 .An Matthew Dillon Aq Mt dillon@FreeBSD.org