sem_destroy(3)

名前なしセマフォを破棄する · man3 · 日本語

SEM_DESTROY(3) Linux Programmer's Manual SEM_DESTROY(3)

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 にエラーを示す値をセットする。

sem は有効なセマフォではない。

この節で使用されている用語の説明については、 attributes(7)EN を参照。

インターフェース 属性 値
sem_destroy() Thread safety MT-Safe

POSIX.1-2001, POSIX.1-2008.

名前なしセマフォは、そのセマフォが置かれているメモリーが解放される前に、 sem_destroy() を使って破棄しておくべきである。これを行わなかった場合、実装によっては リソースのリークが起こりえる。

sem_init(3), sem_post(3), sem_wait(3), sem_overview(7)

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

2020-08-13 Linux