SEMGET(2) DOMAIN/IX SYS5 SEMGET(2)
NAME
semget - get set of semaphores
USAGE
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
int semget(key, nsems, semflg)
key_t key;
int nsems, semflg;
DESCRIPTION
Semget 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 associ-
ated 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 process.
⊕ 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.
RETURN VALUE
A successful semget returns a non-negative integer semaphore
identifier upon completion. A failed call returns -1 and
sets errno as indicated below.
Printed 12/4/86 SEMGET-1
SEMGET(2) DOMAIN/IX SYS5 SEMGET(2)
ERRORS
Semget will fail 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 opera-
tion permission (see intro(2)) as specified by the
low-order 9 bits of semflg cannot be granted.
[EINVAL] A semaphore identifier exists for key, but the
number of semaphores in the set associated 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] Creating a new semaphore identifier would exceed
the system-imposed limit on the maximum number of
semaphore identifiers allowed on the system.
[EEXIST] A semaphore identifier exists for key but
((semflg & IPC_CREAT) & (semflg & IPC_EXCL))
is "true".
RELATED INFORMATION
semctl(2), semop(2)
SEMGET-2 Printed 12/4/86