FLOCKFILE(3) | FreeBSD Library Functions Manual | FLOCKFILE(3) |
名称
flockfile, ftrylockfile, funlockfile — stdio ロック関数ライブラリ
Standard C Library (libc, -lc)書式
#include < stdio.h> void
flockfile( FILE *stream);
int
ftrylockfile( FILE *stream);
void
funlockfile( FILE *stream);
解説
これらの関数は、stdio ストリームの明白なアプリケーションレベルのロックを提供します。点在する複数のスレッドからの出力、複数の読み込み者の中で分散されている入力を避けるために、各操作のためのストリームをロックするオーバヘッドを避けるのために、それらを使用することができます。flockfile() 関数は、指定されたストリームの排他的なロックを獲得します。別のスレッドが既にストリームをロックしているなら、 flockfile() は、ロックが解放されるまで、ブロックされます。
ftrylockfile() 関数は、 flockfile() の非ブロッキング版です。すぐにロックを獲得することができないなら、 ftrylockfile() は、ブロッキングの代わりに 0 以外を返します。
funlockfile() 関数は、以前の flockfile() または ftrylockfile() への呼び出しによって獲得されたストリームのロックを解放します。
これらの関数は、まるで各ストリームに関連しているロックカウントがあるかのように振る舞います。 flockfile() がストリームで呼び出されるたびに、カウントは、増加されて、そして、 funlockfile() がストリームで呼び出されるたびに、カウントは、減少されます。ロックは、カウントが 0 に達するときのみ実際に解放されます。
戻り値
flockfile() と funlockfile() 関数は、値を返しません。ftrylockfile() 関数は、ストリームのロックが成功したなら 0 を、そうでなければ、0 以外を返します。
規格
flockfile(), ftrylockfile() と funlockfile() 関数は、 IEEE Std 1003.1-2001 (“POSIX.1”) に適合しています。January 10, 2003 | FreeBSD |