flock
一番目の引数で指定されたファイルハンドルを二番目の引数で指定した方法でロック又は解除する。
ファイルロックは、複数のプロセスが同時に同じファイルに書き込む可能性がある場合にそれを避けたい場合に行う。
二番目の引数は
1 | 書き込みロック |
2 | 読み書きロック |
5 | 書き込みロック |
6 | 読み書きロック |
8 | ロック解除 |
5と6はロックできたら真、できなかったら偽を返す。
1と2はロックできるまで待つ。
と思われる。
ので、永久にロックされているようなことはないだろうから通常5と6は使わない。
closeすればロックは解除されるので8も不要。
主に2を使う。
flockでは、ロックの確認又はロックまで待つことしかしないので、
flockを使わないプログラムに対しては意味がない。
又、
open後にflockが使われる前に他のプロセスがファイルの読み書きをする可能性も考慮する必要がある。