int sem_destroy (
The sem_destroy function destroys an unnamed semaphore indicated by sem. Only a semaphore created using sem_init may be destroyed using sem_destroy.
The potential for deadlock exists if a process calls sem_destroy for a semaphore while there is a pending sem_wait, because a process may be waiting for a poster which has not yet opened the semaphore.
On successful completion, the function returns the value 0; otherwise, the function returns the value -1 and sets errno to indicate the error, without destroying the semaphore indicated by the sem argument.
The sem_destroy function fails under the following condition:
Functions: sem_init(3), sem_open(3) delim off