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
- 一つのセマフォで使用できる最大値を超えてしまうところであった。
マルチスレッディング (pthreads(7) 参照)¶
sem_post()
関数はスレッドセーフである。
POSIX.1-2001.
sem_post() は async-signal-safe である。
つまり、シグナルハンドラの中でも安全に呼び出すことができる。
sem_wait(3) 参照。
関連項目¶
sem_getvalue(3),
sem_wait(3),
sem_overview(7)
この文書について¶
この man ページは Linux
man-pages
プロジェクトのリリース
3.65 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。