色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

模擬flock實現文件鎖定

主要提供了一種思路。
  $lock0和$lock1就是文件鎖定的標識符,當文件被某一用戶打開的時候,$lock0和$lock1就會產生,當該文件沒打開則不存在。
  其實最關鍵就是有個標識符來表示當前這個文件的狀態, $lock0和$lock1就是起這樣的作用。

復制代碼 代碼如下:
<?php  

// Lock a file, timing out if it takes too long.  
function lock ($lock, $tries) {  
       $lock0 = ".{$lock}0";  
       $lock1 = ".{$lock}1";  
       for ($i=0; $i<$tries; $i++) {  
               if (!is_file($lock0)) {  
                       touch($lock0);  
                       if (!is_file($lock1)) {  
                               touch($lock1);  
                               return 1;  
                       }  
               }  
               usleep(100);  
       }  
       return 0;  
}  

// Unlock a file.  
function unlock ($lock) {  
       unlink(".{$lock}1");  
       unlink(".{$lock}0");  
}  

// Usage example.  
$filename = "somefile";  
$data = "stuff and thingsn";  
$tries = 10;  
if (lock($filename, $tries)) {  
       $h = fopen($filename, "a") or die();  
       fwrite($h, $data);  
       fclose($h);  
       /**  
         * 另外一個進程寫文件,檢查是否鎖定  
       */  
       if (lock($filename, $tries)) {  
               $h2 = fopen($filename, "a") or die();  
               fwrite($h2,'check lock');  
               fclose($h2);  
        }else{  
            //die("Failed to lock $filename after ".($tries*100)." milliseconds!";  
        }  
        unlock($filename);  
} else {  
       //die("Failed to lock $filename after ".($tries*100)." milliseconds!";  
}  
?> 

php技術模擬flock實現文件鎖定,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 绥德县| 大安市| 苗栗县| 桦南县| 平乐县| 玉屏| 湖南省| 衡山县| 措勤县| 房产| 乾安县| 梨树县| 阿克| 南漳县| 曲阳县| 昌吉市| 咸宁市| 班戈县| 闸北区| 乃东县| 丹阳市| 逊克县| 类乌齐县| 义乌市| 内黄县| 五峰| 和田县| 酒泉市| 慈溪市| 长阳| 星子县| 普陀区| 平南县| 永丰县| 凤庆县| 涟水县| 临邑县| 香港| 册亨县| 永福县| 怀宁县|