Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ shmget(2) — Atari System V 1.1-06

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

shmctl(2)

shmop(2)

stdipc(3C)





   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(keyt key, int size, int 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 access permission bits of shmperm.mode are set equal to
               the access permission bits of shmflg.  shmsegsz is set equal
               to the value of size.

               shmlpid, shmnattch shmatime, and shmdtime are set equal to
               0.

               shmctime is set equal to the current time.

         shmget fails 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.



   8/91                                                                 Page 1









   shmget(2)                                                         shmget(2)


         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 both
                        (shmflg&IPCCREAT) and (shmflg&IPCEXCL) are true.

   SEE ALSO
         intro(2), shmctl(2), shmop(2), stdipc(3C).

   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.

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


























   Page 2                                                                 8/91





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