Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought



SHMGET(2)       DOMAIN/IX Reference Manual (SYS5)       SHMGET(2)



NAME
     shmget - get shared memory segment

USAGE
     #include <sys/types.h>
     #include <sys/ipc.h>
     #include <sys/shm.h>

     int shmget (key, size, shmflg)
     key_t key;
     int size, shmflg;

DESCRIPTION
     Shmget returns the shared memory identifier associated with
     key.

     A shared memory identifier and associated data structure and
     shared memory segment of size size bytes (see intro(2)) are
     created for key if one of the following is true:

          Key is equal to IPC_PRIVATE.  Key does not already have
          a shared memory identifier associated with it, and
          (shmflg & IPC_CREAT) is ``true''.

     The data structure associated with the new shared memory
     identifier is initialized as follows:

          Shm_perm.cuid, shm_perm.uid, shm_perm.cgid, and
          shm_perm.gid are set equal to the effective user ID and
          effective group ID, respectively, of the calling pro-
          cess.

          The low-order 9 bits of shm_perm.mode are set equal to
          the low-order 9 bits of shmflg.  Shm_segsz is set equal
          to the value of size.

          Shm_lpid, shm_nattch, shm_atime, and shm_dtime are set
          equal to zero.

          Shm_ctime is set equal to the current time.

RETURN VALUE
     Upon successful completion, shmget returns a non-negative
     integer, the shared memory identifier.  Otherwise, it
     returns -1 and sets errno to indicate the error.

ERRORS
     Shmget will fail if one or more of the following is true:

     [EINVAL]       Size is less than the system-imposed minimum
                    or greater than the system-imposed maximum.




Printed 5/10/85                                          SHMGET-1





SHMGET(2)       DOMAIN/IX Reference Manual (SYS5)       SHMGET(2)



     [EACCES]       A shared memory identifier exists for key but
                    operation permission (see intro(2)) as speci-
                    fied by the low-order 9 bits of shmflg is not
                    possible.

     [EINVAL]       A shared memory identifier exists for key but
                    the size of the segment associated with it is
                    less than size and size is not equal to zero.

     [ENOENT]       A shared memory identifier does not exist for
                    key and (shmflg & IPC_CREAT) is ``false''.

     [ENOSPC]       Creating another shared memory identifier
                    would exceed the system-imposed limit on the
                    maximum number of shared memory identifiers
                    allowed at one time.

     [ENOMEM]       Insufficient memory is available to create a
                    shared memory identifier and its associated
                    shared memory segment.

     [EEXIST]       A shared memory identifier exists for key but
                    ( (shmflg & IPC_CREAT) and ( shmflg &
                    IPC_EXCL) ) is ``true''.

RELATED INFORMATION
     shmctl(2), shmop(2)




























SHMGET-2                                          Printed 5/10/85



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