sdget(2) UNIX System V(Application Compatibility Package) sdget(2)
NAME
sdget, sdfree - attach and detach a shared data segment
SYNOPSIS
cc [flag . . .] file . . . -lx
#include <sys/sd.h>
char *sdget(char *path, int flags, /* long size, int mode */);
int sdfree(char *addr);
DESCRIPTION
sdget attaches a shared data segment to the data space of the current
process. The actions performed are controlled by the value of flags.
flags values are constructed by an OR of flags from the following list:
SDRDONLY Attach the segment for reading only.
SDWRITE Attach the segment for both reading and writing.
SDCREAT If the segment named by path exists and is not in use
(active), this flag will have the same effect as creating a
segment from scratch. Otherwise, the segment is created
according to the values of size and mode. Read and write
access to the segment is granted to other processes based on
the permissions passed in mode, and functions the same as
those for regular files. Execute permission is meaningless.
The segment is initialized to contain all zeroes.
SDUNLOCK If the segment is created because of this call, the segment
will be made so that more than one process can be between
sdenter and sdleave calls.
sdfree detaches the current process from the shared data segment that is
attached at the specified address. If the current process has done
sdenter but not an sdleave for the specified segment, sdleave will be
done before detaching the segment.
When no process remains attached to the segment, the contents of that
segment disappear, and no process can attach to the segment without
creating it by using the SDCREAT flag in sdget. errno is set to EEXIST
if a process tries to create a shared data segment that exists and is in
use. errno is set to ENOTNAM if a process attempts an sdget on a file
that exists but is not a shared data type.
DIAGNOSTICS
On successful completion, the address at which the segment was attached
is returned. Otherwise, -1 is returned, and errno is set to indicate the
error. errno is set to EINVAL if a process does an sdget on a shared
data segment to which it is already attached. errno is set to EEXIST if
a process tries to create a shared data segment that exists an is in use.
errno is set to ENOTNAM if a process attempts an sdget on a file that
10/89 Page 1
sdget(2) UNIX System V(Application Compatibility Package) sdget(2)
exists but is not a shared data type.
The mode parameter must be included on the first call of the sdget
function.
SEE ALSO
sdenter(2), sdgetv(2)
Page 2 10/89