Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sdget(2XNX) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

sdenter(2XNX)

sdgetv(2XNX)






       sdget(2XNX)         (XENIX System Compatibility)         sdget(2XNX)


       NAME
             sdget, sdfree - (XENIX) attach and detach a shared data
             segment

       SYNOPSIS
             cc [flag . . . ] flag . . . -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:

             SD_RDONLY   Attach the segment for reading only.

             SD_WRITE    Attach the segment for both reading and writing.

             SD_CREAT    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.

             SD_UNLOCK   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.

             The mode parameter must be included on the first call of the
             sdget function.

             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.





                           Copyright 1994 Novell, Inc.               Page 1













      sdget(2XNX)         (XENIX System Compatibility)         sdget(2XNX)


            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 SD_CREAT flag in
            sdget.

         Return Values
            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.

         Errors
            sdget will fail if one or more of the following are true:

            ENAMETOOLONG   The file name specified is too long.

            ELOOP          The file name specified is resolvable due to a
                           lengthy symbolic link.

            ENOTDIR        The path specified contains a non-directory
                           component.

            EEXIST         A process tried to create a shared data segment
                           that exists and is in use.

            ENOTNAM        A process attempted an sdget on a file that
                           exists but is not a shared data type.

            EINVAL         A process attempted an sdget on a shared data
                           segment to which it is already attached.

      REFERENCES
            sdenter(2XNX), sdgetv(2XNX)
















                          Copyright 1994 Novell, Inc.               Page 2








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026