sem_post -
セマフォのロックを解除する
#include <semaphore.h>
int sem_post(sem_t *sem);
-pthread とリンクする。
sem_post() は、
sem
が指すセマフォの値を
1 増やす
(ロックを解除する)。その結果、
セマフォの値は 0
より大きな値に変化し、
sem_wait(3)
で停止している別のプロセスやスレッドが呼び起こされ、
セマフォをロックできるようになる。
成功すると、
sem_post() は 0
を返す。エラーの場合、セマフォの値は変更せずに、
-1 を返し、
errno
にエラーを示す値をセットする。
- EINVAL
-
sem
は有効なセマフォではない。
- EOVERFLOW
- 一つのセマフォで使用できる最大値を超えてしまうところであった。
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
sem_post() |
Thread safety |
MT-Safe |
POSIX.1-2001.
sem_post() は async-signal-safe である。
つまり、シグナルハンドラーの中でも安全に呼び出すことができる。
sem_wait(3) と
sem_open(3) を参照。
sem_getvalue(3),
sem_wait(3),
sem_overview(7),
signal-safety(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。