EN JA
SEM_WAIT(3)
SEM_WAIT(3) FreeBSD Library Functions Manual SEM_WAIT(3)

名称

sem_wait, sem_trywaitセマフォの値を減少させます (ロックする)

ライブラリ

Standard C Library (libc, -lc)

書式

#include < semaphore.h>

int
sem_wait( sem_t *sem);

int
sem_trywait( sem_t *sem);

解説

sem_wait() 関数は、 sem によって指されたセマフォの値を減少させます (ロックします)。しかし、 sem の値が 0 の場合、ブロックされ、値が 0 でない間、値を減少できます。

sem_trywait() 関数は、値が 0 でない場合のみ sem によって指されるセマフォの値を減少させます (ロックします)。そうでなければ、セマフォの値は、減少されず、エラーが返されます。

戻り値

Upon successful completion, the value 0 is returned; otherwise the value -1 is returned and the global variable errno is set to indicate the error.

エラー

sem_wait() と sem_trywait() 関数は、次の場合に失敗します:
[ EINVAL]
sem 引数は、無効なセマフォを指しています。

さらに、 sem_wait() は、次の場合に失敗します:

[ EINTR]
シグナルが、この関数に割り込みました。

さらに、 sem_trywait() は、次の場合に失敗します:

[ EAGAIN]
セマフォの値は、0 で、減少することができませんでした。

規格

sem_wait() と sem_trywait() 関数は、 ISO/IEC 9945-1:1996 (“POSIX.1”) に適合しています。
April 16, 2013 FreeBSD