sem_destroy -
名前なしセマフォを破棄する
#include <semaphore.h>
int sem_destroy(sem_t *sem);
-pthread とリンクする。
sem_destroy() は
sem
が指すアドレスにある名前なしセマフォを破棄する。
sem_destroy()
を使って破棄するのは、
sem_init(3)
で初期化したセマフォだけにすべきである。
他のプロセスやスレッドが
(
sem_wait(3) で)
待ち状態になっているセマフォを破棄した場合の挙動は定義されていない。
すでに破棄されたセマフォを、
sem_init(3)
を使って再初期化される前に使用した場合、その結果は未定義である。
返り値¶
成功すると、
sem_destroy() は 0
を返す。エラーの場合、-1
を返し、
errno
にエラーを示す値をセットする。
エラー¶
- EINVAL
- sem
は有効なセマフォではない。
マルチスレッディング (pthreads(7) 参照)¶
sem_destroy()
関数はスレッドセーフである。
POSIX.1-2001.
名前なしセマフォは、そのセマフォが置かれているメモリが解放される前に、
sem_destroy()
を使って破棄しておくべきである。これを行わなかった場合、実装によっては
リソースのリークが起こりえる。
関連項目¶
sem_init(3),
sem_post(3),
sem_wait(3),
sem_overview(7)
この文書について¶
この man ページは Linux
man-pages
プロジェクトのリリース
3.65 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。