Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ shmget(2) — svr4 — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

shmctl(2)

shmop(2)

stdipc(3C)



SHMGET(2-SVR4)      RISC/os Reference Manual       SHMGET(2-SVR4)



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

          key does not already have a shared memory identifier
          associated with it, and (shmflg&IPC_CREAT) is true.

     Upon creation, 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 access permission bits of shm_perm.mode are set
          equal to the access permission 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 0.

          shm_ctime 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 speci-
                    fied 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



                        Printed 11/19/92                   Page 1





SHMGET(2-SVR4)      RISC/os Reference Manual       SHMGET(2-SVR4)



                    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         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 suffi-
                    cient to fill the request.  This can happen
                    if kernel working storage is exhausted, or if
                    creating the segment would cause the system-
                    imposed limit on the aggregate size of all
                    shared memory segments (the reconfigurable
                    kernel variable shminfo.shmall) to be
                    exceeded.

     EEXIST         A shared memory identifier exists for key but
                    both (shmflg&IPC_CREAT) and (shmflg&IPC_EXCL)
                    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                 Printed 11/19/92



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