Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

intro(2)

semctl(2)

semop(2)



          SEMGET(2)            INTERACTIVE UNIX System            SEMGET(2)



          NAME
               semget - get set of semaphores

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

               int semget (key, nsems, semflg)
               key_t key;
               int nsems, semflg;

          DESCRIPTION
               The semget system call returns the semaphore identifier
               associated with key.

               A semaphore identifier and associated data structure and set
               containing nsems semaphores [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 semaphore identifier asso-
                    ciated with it, and (semflg & IPC_CREAT) is ``true''.

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

                    Sem_perm.cuid, sem_perm.uid, sem_perm.cgid, and
                    sem_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 sem_perm.mode are set equal to
                    the low-order 9 bits of semflg.

                    Sem_nsems is set equal to the value of nsems.

                    Sem_otime is set equal to 0 and sem_ctime is set equal
                    to the current time.

               The data structure associated with each semaphore in the set
               is not initialized.  The function semctl with the command
               setval or setall can be used to initialize each semaphore.

               The semget system call fails if one or more of the following
               is true:

               [EINVAL]       Nsems is either less than or equal to zero or
                              greater than the system-imposed limit.

               [EACCES]       A semaphore identifier exists for key, but
                              operation permission [see intro(2)] as


          Rev. C Software Development Set                            Page 1





          SEMGET(2)            INTERACTIVE UNIX System            SEMGET(2)



                              specified by the low-order 9 bits of semflg
                              would not be granted.

               [EINVAL]       A semaphore identifier exists for key, but
                              the number of semaphores in the set associ-
                              ated with it is less than nsems, and nsems is
                              not equal to zero.

               [ENOENT]       A semaphore identifier does not exist for
                              key, and (semflg & IPC_CREAT) is ``false''.

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

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

               [EEXIST]       A semaphore identifier exists for key, but
                              [(semflg & IPC_CREAT) and (semflg &
                              IPC_EXCL)] are ``true''.

          SEE ALSO
               intro(2), semctl(2), semop(2).

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























          Rev. C Software Development Set                            Page 2



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