ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルでファイルをロックする方法

PHP_PHP チュートリアルでファイルをロックする方法

WBOY
WBOYオリジナル
2016-07-13 17:08:521165ブラウズ

/*
*lock_thisfile: 排他的ロックを取得します
*@param $tmpFileStr は共有ロックファイルとして使用されるファイル名です (任意の名前を付けることができます)
*@param $locktype ロック タイプ、デフォルトは false (非ブロッキング、つまり、ロックが失敗すると直接 false を返します)。true に設定すると、ロックが成功するまで待機してから戻ります
。 *@return ロックが成功した場合は、ロック インスタンスが返されます (unlock_thisfile メソッドを使用する場合、このパラメーターは必須です)。ロックが失敗した場合は、false が返されます。
*/
function lock_thisfile($tmpFileStr,$locktype=false){
if($locktype == false)
$locktype = LOCK_EX|LOCK_NB;
$can_write = 0;
$lockfp = @fopen($tmpFileStr.".lock","w");
if($lockfp){
$can_write = @flock($lockfp,$locktype);
}
if($can_write){
$lockfp を返します;
}
他{
if($lockfp){
@fclose($lockfp);
@unlink($tmpFileStr.".lock");
}
false を返します;
}
}

/**
*unlock_thisfile: 以前に取得したロック インスタンスのロックを解除します
*@param $fp lock_thisfileメソッドの戻り値
*@param $tmpFileStr は共有ロックファイルとして使用されるファイル名です (任意の名前を付けることができます)
*/
関数unlock_thisfile($fp,$tmpFileStr){
@flock($fp,LOCK_UN);
@fclose($fp);
@fclose($fp);
@unlink($tmpFileStr.".lock");
}
?>

//使用例
$tmpFileStr = "/tmp/mylock.loc";

// 操作権限が取得されるのを待ちます。すぐに戻りたい場合は、第 2 パラメータを false に設定します。 $lockhandle = lock_thisfile($tmpFileStr,true);
if($ロックハンドル){
// 排他的である必要があるすべてのトランザクション処理はここで実行されます。
// ... ...
// トランザクションが完了しました。
lock_thisfile($lockhandle,$tmpFileStr);
}

?>

http://www.bkjia.com/PHPjc/629786.htmlwww.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/629786.html技術記事 ?php /* *lock_thisfile: 排他的ロックを取得します *@param $tmpFileStr 共有ロック ファイルとして使用されるファイル名 (任意の名前を付けることができます) *@param $locktype ロックのタイプ、デフォルトは false (not.. .
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。