Use sem_post(3RT) to atomically increment the semaphore pointed to by sem.
int sem_post(sem_t *sem);
#include <semaphore.h> sem_t sem; int ret; ret = sem_post(&sem); /* semaphore is posted */
When any threads are blocked on the semaphore, one of the threads is unblocked.
sem_post() returns zero after completing successfully. Any other return value indicates that an error occurred. When the following condition occurs, the function fails and returns the corresponding value.
sem points to an illegal address.