SEMGET(S) XENIX System V SEMGET(S)
Name
semget - Gets set of semaphores.
Syntax
#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 an associated data structure and
set containing nsems semaphores (see intro(S)) are created
for key if one of the following are true:
key is equal to IPC_PRIVATE.
key does not already have a semaphore identifier
associated 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.
semget will fail if one or more of the following are true:
nsems is either less than or equal to zero or greater
than the system-imposed limit. [EINVAL]
A semaphore identifier exists for key, but operation
permission (see intro(S)) as specified by the low-order
9 bits of semflg would not be granted. [EACCES]
A semaphore identifier exists for key, but the number
of semaphores in the set associated with it is less
Page 1 (printed 8/7/87)
SEMGET(S) XENIX System V SEMGET(S)
than nsems and nsems is not equal to zero. [EINVAL]
A semaphore identifier does not exist for key and
(semflg & IPC_CREAT) is ``false''. [ENOENT]
A semaphore identifier is to be created but the
system-imposed limit on the maximum number of allowed
system wide semaphore identifiers would be exceeded.
[ENOSPC]
A semaphore identifier is to be created but the
system-imposed limit on the maximum number of allowed
system wide semaphores would be exceeded. [ENOSPC]
A semaphore identifier exists for key but ( (semflg &
IPC_CREAT ") and (" semflg & IPC_EXCL) ) is ``true''.
[EEXIST]
Return Value
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.
See Also
intro(S), semctl(S), semop(S)
Notes
Programmers using this function must be compiled with the -
Me compiler option.
Page 2 (printed 8/7/87)