System Calls semget(2)
NAME
semget - get set of semaphores
SYNOPSIS
#include
#include
#include
int semget(key_t key, int nsems, int semflg);
DESCRIPTION
The semget() function returns the semaphore identifier asso-
ciated 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:o key is equal to IPC_PRIVATE.
o key does not already have a semaphore identifierassociated with it, and (semflg&IPC_CREAT) is true.
On creation, the data structure associated with the new semaphore identifier is initialized as follows:o 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 cal-
ling process.o The access permission bits of sem_perm.mode are set
equal to the access permission bits of semflg.o sem_nsems is set equal to the value of nsems.
o sem_otime is set equal to 0 and sem_ctime is set
equal to the current time.RETURN VALUES
Upon successful completion, a non-negative integer
representing a semaphore identifier is returned. Otherwise,-1 is returned and errno is set to indicate the error.
ERRORS
The semget() function will fail if:
EACCES A semaphore identifier exists for key, but opera-
tion permission (see Intro(2)) as specified by theSunOS 5.11 Last change: 14 Aug 2006 1
System Calls semget(2)
low-order 9 bits of semflg would not be granted.
EEXIST A semaphore identifier exists for key but both(semflg&IPC_CREAT) and (semflg&IPC_EXCL) are both
true. EINVAL The nsems argument is either less than or equal to0 or greater than the system-imposed limit. See
NOTES. 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 0. ENOENT A semaphore identifier does not exist for key and(semflg&IPC_CREAT) is false.
ENOSPC A semaphore identifier is to be created but thesystem-imposed limit on the maximum number of
allowed semaphores or semaphore identifierssystem-wide would be exceeded. See NOTES.
ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| Standard | See standards(5). ||_____________________________|_____________________________|
SEE ALSO
ipcrm(1), ipcs(1), rctladm(1M), Intro(2), semctl(2), semop(2), setrctl(2), ftok(3C), attributes(5), standards(5) NOTESThe system-imposed limit on the value of the nsems argument
is the maintained on a per-process basis using the
process.max-sem-nsems resource control.
SunOS 5.11 Last change: 14 Aug 2006 2
System Calls semget(2)
The system-imposed limit on the number of semaphore identif-
iers is maintained on a per-project basis using the
project.max-sem-ids resource control. The zone.max-sem-ids
resource control limis the total number of semaphore iden-
tifiers that can be allocated by a zone. See rctladm(1M) and setrctl(2) for information about using resource controls.SunOS 5.11 Last change: 14 Aug 2006 3