Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ () — Motorola System V 88k Release 3.2 Version 1.2C

Media Vault

Software Library

Restoration Projects

Artifacts Sought



  SHMGET(2)                                               SHMGET(2)



  NAME
       shmget - get shared memory segment identifier

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

       int shmget (key, size, shmflg)
       keyt 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 at least size bytes [see intro(2)]
       are created for key if one of the following are true:

            Key is equal to IPCPRIVATE.

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

       Upon creation, the data structure associated with the new
       shared memory identifier is initialized as follows:

            Shmperm.cuid, shmperm.uid, shmperm.cgid, and
            shmperm.gid are set equal to the effective user ID and
            effective group ID, respectively, of the calling
            process.

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

            Shmlpid, shmnattch, shmatime, shmausec , shmdtime
            and shmdusec are set equal to 0.


  Page 1                                                   May 1989


















  SHMGET(2)                                               SHMGET(2)



            Shmctime is set equal to the current time.

       shmget will fail if one or more of the following are 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
                      would not be granted.

       [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 & IPCCREAT) is ``false''.

       [ENOSPC]       A shared memory identifier is to be created
                      but the system-imposed limit on the maximum
                      number of allowed shared memory identifiers
                      system wide would be exceeded.

       [ENOMEM]       A shared memory identifier and associated
                      shared memory segment are to be created but
                      the amount of available memory is not
                      sufficient to fill the request.

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

  SEE ALSO
       intro(2), shmctl(2), shmop(2).

  DIAGNOSTICS
       Upon successful completion, a non-negative integer, namely a
       shared memory identifier is returned.  Otherwise, a value of
       -1 is returned and errno is set to indicate the error.


  Page 2                                                   May 1989


















  SHMGET(2)                                               SHMGET(2)



  NOTES
       The user must explicitly remove shared memory segments after
       the last reference to them has been removed.







































  Page 3                                                   May 1989
















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