sem_getvalue -
セマフォの値を取得する
#include <semaphore.h>
int sem_getvalue(sem_t *sem, int *sval);
-lrt または
-pthread
でリンクする。
sem_getvalue() は、
sem
が指すセマフォの現在の値を
sval
で指す整数に格納する。
POSIX.1-2001 によると、
1つ以上のプロセスかスレッドが
sem_wait(3)
でセマフォのロック待ちで停止している場合、
sval で返される値は 0
もしくは負の値のいずれかとなる。
負の値の場合、その絶対値は
sem_wait(3)
で現在停止しているプロセスかスレッドの合計数に等しい。
Linux は前者の動作 (0
を返す動作)
を採用している。
返り値¶
成功すると、
sem_getvalue() は
0
を返す。エラーの場合、-1
を返し、
errno
にエラーを示す値をセットする。
エラー¶
- EINVAL
- sem
は有効なセマフォではない。
POSIX.1-2001.
sem_getvalue()
が返るときには、すでにセマフォの値は変化している可能性がある。
関連項目¶
sem_post(3),
sem_wait(3),
sem_overview(7)
この文書について¶
この man ページは Linux
man-pages
プロジェクトのリリース
3.41 の一部
である。プロジェクトの説明とバグ報告に関する情報は
http://www.kernel.org/doc/man-pages/
に書かれている。