The sem_init function initializes the unnamed semaphore pointed to by sem to have the value value. A non-zero value for pshared specifies a shared semaphore that can be used by multiple processes, which this implementation is not capable of.
Following a successful call to sem_init, sem can be used as an argument in subsequent calls to sem_wait(3), sem_trywait(3), sem_post(3), and sem_destroy(3). The sem argument is no longer valid after a successful call to sem_destroy(3).
.Rv -std sem_init
The sem_init function will fail if: