sdget(2) (XENIX Compatibility Package) sdget(2)
NAME
sdget, sdfree - attaches and detaches a shared data segment.
SYNOPSIS
cc [flag ...] file ... -lx
#include <sys/sd.h>
char *sdget(char *path, int flags /*, long size, int mode */)fP;
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 OR-ing flags from the following list:
Attach the segment for reading only. Attach the segment for both
reading and writing. 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. 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 exists but is not a shared
data type.
8/91 Page 1
sdget(2) (XENIX Compatibility Package) sdget(2)
The mode parameter must be included on the first call of the sdget
function.
SEE ALSO
sdenter(2), sdgetv(2).
Page 2 8/91