PythonでCGI実装していると、CGIからいろんな資源にアクセスすることになります。 RDBとかファイルとか。。。 RDBに対するR/Wは、RDB管理モジュールが同時書き込みに対する排他制御を行ってくれるので 何も意識することはありませんが、ファイルに対するR/Wとなるとそうはいきません。 ファイルで特に問題になるのは、書き込みです。 ファイルは複数プロセスで同時にオープンすることができますので、 あるプロセスで書き込みを行っている最中に別のプロセスが書き込むことができます。 しかしファイルの実態は一つなので、タイミングによってはどちらかの書き込みの内容が 全く反映されない。。。なんてことも起こりえます。 これは、書き込みプロセスと読み込みプロセス間でも同様の問題が発生します。 こんなときに使うのがプロセス間の排他制御です。 今回紹介するのは、 fcntlモジュールです。