.\" $OpenBSD: shm_open.3,v 1.5 2015/05/05 06:29:15 guenther Exp $ .\" .\" Copyright (c) 2013 Ted Unangst .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .Dd $Mdocdate: May 5 2015 $ .Dt SHM_OPEN 3 .Os .Sh NAME .Nm shm_open , .Nm shm_unlink , .Nm shm_mkstemp .Nd create and destroy shared memory objects .Sh SYNOPSIS .In sys/mman.h .Ft int .Fn shm_open "const char *path" "int flags" "mode_t mode" .Ft int .Fn shm_unlink "const char *path" .Ft int .Fn shm_mkstemp "char *template" .Sh DESCRIPTION The .Fn shm_open function opens a shared memory object and returns a file descriptor suitable for use with .Xr mmap 2 . The .Fa flags argument has the same meaning as provided to .Xr open 2 and must include at least .Dv O_RDONLY or .Dv O_RDWR and may also include a combination of .Dv O_CREAT , O_EXCL , O_CLOEXEC , O_NOFOLLOW , or .Dv O_TRUNC . This implementation forces the .Fa mode to be 0600 or 0400, and prohibits sharing between different UIDs. .Pp .Fn shm_unlink is used to remove a shared memory object. The object is not freed until all references to it have been released via .Xr close 2 . .Pp If a temporary shared memory object is desired, the .Fn shm_mkstemp function should be preferred as it avoids several possible security holes that tend to appear in programs trying to create their own unique temporary names. The .Fa template argument is a string with at least six trailing Xs as described in .Xr mkstemp 3 . .Sh RETURN VALUES .Fn shm_open and .Fn shm_mkstemp return a file descriptor on successful completion. They may fail for any of the reasons listed in .Xr open 2 . .Sh SEE ALSO .Xr mmap 2 .Sh STANDARDS .Fn shm_open and .Fn shm_unlink appear in .St -p1003.1-2001 . Using .Dv O_CLOEXEC or .Dv O_NOFOLLOW with .Fn shm_open is an extension to that standard. This implementation deviates from the standard by permitting less sharing. .Pp .Fn shm_mkstemp is an extension. .Sh HISTORY The .Fn shm_open , .Fn shm_unlink , and .Fn shm_mkstemp functions have been available since .Ox 5.4 . .Sh AUTHORS .An Ted Unangst Aq Mt tedu@openbsd.org .