sem_getvalue -
セマフォの値を取得する
#include <semaphore.h>
int sem_getvalue(sem_t *sem, int *sval);
-pthread とリンクする。
sem_getvalue() は、
sem
が指すセマフォの現在の値を
sval
で指す整数に格納する。
POSIX.1 によると、
1つ以上のプロセスかスレッドが
sem_wait(3)
でセマフォのロック待ちで停止している場合、
sval で返される値は 0
もしくは負の値のいずれかとなる。
負の値の場合、その絶対値は
sem_wait(3)
で現在停止しているプロセスかスレッドの合計数に等しい。
Linux は前者の動作 (0
を返す動作)
を採用している。
成功すると、
sem_getvalue() は
0
を返す。エラーの場合、-1
を返し、
errno
にエラーを示す値をセットする。
- EINVAL
-
sem is not a valid semaphore. (The glibc
implementation currently does not check whether sem is valid.)
この節で使用されている用語の説明については、
attributes(7) を参照。
インターフェース |
属性 |
値 |
sem_getvalue() |
Thread safety |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
sem_getvalue()
が返るときには、すでにセマフォの値は変化している可能性がある。
sem_post(3),
sem_wait(3),
sem_overview(7)
この man ページは Linux
man-pages
プロジェクトのリリース
5.10
の一部である。プロジェクトの説明とバグ報告に関する情報は
https://www.kernel.org/doc/man-pages/
に書かれている。