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

名称

flockfile, ftrylockfile, funlockfilestdio ロック関数

ライブラリ

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