ホームページ > php教程 > php手册 > flock をシミュレートしてファイル ロックを実装する

flock をシミュレートしてファイル ロックを実装する

WBOY
リリース: 2016-06-13 12:34:14
オリジナル
1108 人が閲覧しました

主にアイデアを提供します。
$lock0 と $lock1 はファイルのロック識別子です。ユーザーがファイルを開くと、$lock0 と $lock1 が生成されます。ファイルが開かれていない場合、それらは存在しません。
実際、最も重要なことは、ファイルの現在のステータスを表す識別子を持たせることです。$lock0 と $lock1 がそのような役割を果たします。

コードをコピー コードは次のとおりです:



//ファイルをロックします。時間がかかりすぎる場合はタイムアウトします。
function lock ($lock, $tries) {
$lock0 = ".{$lock}0"; lock}1 ";
for ($i=0; $i if (!is_file($lock0)) {
touch($lock0);
if (! is_file($lock1)) { >}

// ファイルのロックを解除します。
functionunlock($lock) {
unlink(".{$lock}1");
unlink(".{$lock} 0");
}

// 使用例。
$filename = "somefile";
$data = "stuff and thingsn" ;
$tries = 10;
if (lock($filename, $tries)) {
$h = fopen($filename, "a") または die(); h, $data);
fclose ($h);
/**
* 別のプロセスがファイルを書き込み、ロックされているかどうかを確認します
*/
if (lock($filename, $tries)) {
$h2 = fopen($)ファイル名, "a") または die() ;
fwrite($h2,'チェックロック');
}else{
//die("失敗しました".($tries* 100) の後の $ ファイル名をロックします!"; 」ミリ秒!";
}
?>


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート