Standard C Library Functions sem_init(3C)
NAME
sem_init - initialize an unnamed semaphore
SYNOPSIS
#include
int sem_init(sem_t *sem, int pshared, unsigned int value);
DESCRIPTION
The sem_init() function is used to initialize the unnamed
semaphore referred to by sem. The value of the initialized semaphore is value. Following a successful call tosem_init(), the semaphore may be used in subsequent calls to
sem_wait(3C), sem_trywait(3C), sem_post(3C), and
sem_destroy(3C). This semaphore remains usable until the
semaphore is destroyed.If the pshared argument has a non-zero value, then the sema-
phore is shared between processes; in this case, any process that can access the semaphore sem can use sem for performingsem_wait(3C), sem_trywait(3C), sem_post(3C), and
sem_destroy(3C) operations.
Only sem itself may be used for performing synchronization. The result of referring to copies of sem in calls tosem_wait(3C), sem_trywait(3C), sem_post(3C), and
sem_destroy(3C), is undefined.
If the pshared argument is zero, then the semaphore is shared between threads of the process; any thread in thisprocess can use sem for performing sem_wait(3C),
sem_trywait(3C), sem_post(3C), and sem_destroy(3C) opera-
tions. The use of the semaphore by threads other than those created in the same process is undefined. Attempting to initialize an already initialized semaphore results in undefined behavior.The sem_open(3C) function is used with named semaphores.
RETURN VALUES
Upon successful completion, the function initializes thesemaphore in sem. Otherwise, it returns -1 and sets errno to
indicate the error.SunOS 5.11 Last change: 9 Jul 2009 1
Standard C Library Functions sem_init(3C)
ERRORS
The sem_init() function will fail if:
EINVAL The value argument exceeds SEM_VALUE_MAX.
ENOSPC A resource required to initialize the semaphore has been exhausted, or the resources have reachedthe limit on semaphores (SEM_NSEMS_MAX).
ENOSYS The sem_init() function is not supported by the
system. EPERM The process lacks the appropriate privileges to initialize the semaphore.ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
| Standard | See standards(5). ||_____________________________|_____________________________|
SEE ALSO
sem_destroy(3C), sem_open(3C), sem_post(3C), sem_wait(3C),
attributes(5), standards(5)SunOS 5.11 Last change: 9 Jul 2009 2