名前
sem_destroy - 名前なしセマフォを破棄する
書式
#include <semaphore.h>
int sem_destroy(sem_t *sem);
説明
sem_destroy() は sem が指すアドレスにある名前なしセマフォを破棄する。
sem_destroy() を使って破棄するのは、 sem_init(3) で初期化したセマフォだけにすべきである。
他のプロセスやスレッドが (sem_wait(3) で) 待ち状態になっているセマフォを破棄した場合の挙動は定義されていない。
すでに破棄されたセマフォを、 sem_init(3) を使って再初期化される前に使用した場合、その結果は未定義である。
返り値
成功すると、 sem_destroy() は 0 を返す。エラーの場合、-1 を返し、 errno にエラーを示す値をセットする。
エラー
EINVAL | sem は有効なセマフォではない。 |
準拠
POSIX.1-2001.
注意
名前なしセマフォは、そのセマフォが置かれているメモリが解放される前に、 sem_destroy() を使って破棄しておくべきである。これを行わなかった場合、実装によっては リソースのリークが起こりえる。