flockfile関数は,
stdioストリームをロックし,複数の入出力操作にわたって,スレッドがそのストリームを排他的に使用できるようになります。たとえばあるスレッドの
printfの出力と,
printfを使おうとしているほかのスレッドの出力が混じらないようにしたい場合は,
flockfile関数を使用します。
引数のファイル・ポインタは,正しいことが前提です。
flockfileは,ファイル・ポインタが無効でもロックを実行します。また,
funlockfile関数は,呼び出し元スレッドが引数のファイル・ポインタのロックを所有していない場合でも,エラーになりません。
対応する
flockfileと
funlockfileの呼び出しは,ネストさせることができます。ストリームを再帰的にロックすると,対応する最後の
funlockfileを呼び出すまでは,ストリームはロックされたままになります。
すべての C RTL ファイル・ポインタ入出力関数は,
flockfileおよび
funlockfileを呼び出したかのように,ファイル・ポインタをロックします。
ftrylockfileおよび
funlockfileも参照してください。