sem が指す名前なしセマフォーに関連付けられた状態を削除するには、sem_destroy(3RT) を使用します。
int sem_destroy(sem_t *sem);
#include <semaphore.h> sem_t sem; int ret; ret = sem_destroy(&sem); /* the semaphore is destroyed */
セマフォーの記憶領域は解放されません。
sem_destroy() は、正常終了時に 0 を返します。それ以外の戻り値は、エラーが発生したことを示します。以下の条件が検出されると、この関数は失敗し、次の値を返します。
EINVAL
説明:sem が指すアドレスが正しくありません。