The sem_close function makes a semaphore available for reuse
by deallocating any system resources allocated for use by the
current process for the named semaphore indicated by sem.
If the semaphore has not been removed with a call to sem_unlink,
sem_close does not change the current state of the semaphore.
If the semaphore has been removed with a call to sem_unlink after
the most recent call to sem_open with O_CREAT, the semaphore is
no longer available after all processes that opened the semaphore
close it.