Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

shmctl(2)

shmop(2)



SHMGET(2)                DOMAIN/IX 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 process.

     ⊕  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
     A successful shmget returns a non-negative integer shared
     memory identifier.  A failed call returns -1 and sets errno
     as indicated below.



Printed 12/4/86                                          SHMGET-1







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



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.

     [EACCES]  A shared memory identifier exists for key but
               operation permission (see intro(2)) as specified
               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) & (shmflg & IPC_EXCL))

               is "true".

RELATED INFORMATION
     shmctl(2), shmop(2)















SHMGET-2                                          Printed 12/4/86





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