2.4.3.7.2. Posix Semaphore Interface
int sem_init (sem_t *sem, int pshared, unsigned int value);
int sem_destroy (sem_t *sem);

sem_t *sem_open (const char *name, int oflag,
                 mode_t mode, unsigned int value);
int sem_unlink (const char *name);

int sem_wait (sem_t *sem);
int sem_trywait (sem_t *sem);
int sem_timedwait (sem_t *restrict sem,
                   const struct timespec *abs_timeout);

int sem_post (sem_t *sem);

int sem_getvalue (sem_t *sem, int *sval);