200X/00/11 排他制御ってなんなんだ!! (▼、▼メ どうやってロックをかけるんだ!! flock関数ってのが有るのだが、OSによって使えたり使えなかったり? ネットをウロウロして情報を集めても、open関数で作るなとかsymlink関数も、も 一つ動かないとか・・・結局よく解らない/(-_-)\ こまった〜 でもmkdir関数は簡単そうで、汎用性も有りそうなのでこれにしようっと(*^^*ゞ mkdir関数って、そのまま読んだらメイクディレクトリって読める?? と言う訳で、ロックするプログラムなのですが。 ロックフォルダを作る(ロック) ↓ ロックフォルダがあるときは他の人は書きこみできない。 ↓ ロックフォルダを削除(アンロック) これで??良いのかなぁ・・・疑問だ(−−; でも、何処をみてもこれでロックするって書いてあったし・・・ このロックの仕方では、途中でエラーが出たらロックファイルが残って誰もカキコが出来なくなったり データが死にます・・・ガッハッハ(*^^*ゞ foreach( 1..5) { if( mkdir($lock, 0755 ) ){ last; } else{ sleep( 1 ); } } rmdir( $lock ); 簡単なプログラムです(*^^*ゞ foreachで5回ロックファイルを作るのを試みます→ロックファイルをパーミッション755で作ります→ 出来たら繰り返し処理をlastで脱出→ロックがかかってる待ち時間を一秒に設定sleep→カキコミなどetc→ rmdirでロックファイルを削除・・・以上。(でもデータは死ぬ可能性が有ります) |