Use sem_destroy(3RT) to destroy any state that is associated with the unnamed semaphore pointed to by sem.
int sem_destroy(sem_t *sem);
#include <semaphore.h> sem_t sem; int ret; ret = sem_destroy(&sem); /* the semaphore is destroyed */
The space for storing the semaphore is not freed.
sem_destroy() 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.