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);
named - semaphore for synchronization between processes
unnamed - semaphore for synchronization within a process