国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - PHP教程 - PHP flock 文件鎖詳細(xì)介紹

PHP flock 文件鎖詳細(xì)介紹

2020-03-06 20:21PHP教程網(wǎng) PHP教程

腳本之家小編今天將為大家詳解關(guān)于php中文件鎖函數(shù)flock函數(shù)用法簡介,希望通過本文的介紹大家對于Linux方面能夠更加的了解

flock
(PHP 4, PHP 5)

flock — 輕便的咨詢文件鎖定

說明
bool flock ( int $handle , int $operation [, int &$wouldblock ] )
PHP 支持以咨詢方式(也就是說所有訪問程序必須使用同一方式鎖定, 否則它不會工作)鎖定全部文件的一種輕便方法。

Note:

在 Windows 下 flock() 將會強(qiáng)制執(zhí)行。

flock() 操作的 handle 必須是一個已經(jīng)打開的文件指針。operation 可以是以下值之一:


要取得共享鎖定(讀取的程序),將 operation 設(shè)為 LOCK_SH(PHP 4.0.1 以前的版本設(shè)置為 1)。
要取得獨(dú)占鎖定(寫入的程序),將 operation 設(shè)為 LOCK_EX(PHP 4.0.1 以前的版本中設(shè)置為 2)。
要釋放鎖定(無論共享或獨(dú)占),將 operation 設(shè)為 LOCK_UN(PHP 4.0.1 以前的版本中設(shè)置為 3)。
如果不希望 flock() 在鎖定時堵塞,則給 operation 加上 LOCK_NB(PHP 4.0.1 以前的版本中設(shè)置為 4)。

flock() 允許執(zhí)行一個簡單的可以在任何平臺中使用的讀取/寫入模型(包括大部分的 Unix 派生版和甚至是 Windows)。如果鎖定會堵塞的話(EWOULDBLOCK 錯誤碼情況下),可選的第三個參數(shù)會被設(shè)置為 TRUE。鎖定操作也可以被 fclose() 釋放(代碼執(zhí)行完畢時也會自動調(diào)用)。

成功時返回 TRUE, 或者在失敗時返回 FALSE.


Example #1 flock() 例子
復(fù)制代碼 代碼如下:

<?php
$fp = fopen("/tmp/lock.txt", "w+");
if (flock($fp, LOCK_EX)) { // 進(jìn)行排它型鎖定
fwrite($fp, "Write something here ");
flock($fp, LOCK_UN); // 釋放鎖定
} else {
echo "Couldn't lock the file !";
}
fclose($fp);
?>

Note:

由于 flock() 需要一個文件指針, 因此可能不得不用一個特殊的鎖定文件來保護(hù)打算通過寫模式打開的文件的訪問(在 fopen() 函數(shù)中加入 "w" 或 "w+")。

Warning
flock() 不能用于 NFS 以及其它一些網(wǎng)絡(luò)文件系統(tǒng)。詳細(xì)資料查看自己操作系統(tǒng)的文檔。
在部分操作系統(tǒng)中 flock() 以進(jìn)程級實現(xiàn)。當(dāng)用一個多線程服務(wù)器 API(比如 ISAPI)時,可能不可以依靠 flock() 來保護(hù)文件,因為運(yùn)行于同一服務(wù)器實例中其它并行線程的 PHP 腳本可以對該文件進(jìn)行處理。
flock() 不支持舊的文件系統(tǒng),如 FAT 以及它的派生系統(tǒng)。因此,此環(huán)境下總是返回 FALSE(尤其是對 Windows 98 用戶來說)。

php中文件鎖函數(shù)flock函數(shù)用法簡介:

語法:

bool flock ( int $handle , int $operation [, int &$wouldblock ] )
flock() 操作的 handle 必須是一個已經(jīng)打開的文件指針。operation 可以是以下值之一:
1. 要取得共享鎖定(讀取程序),將 operation 設(shè)為 LOCK_SH(PHP 4.0.1 以前的版本設(shè)置為 1)
2. 要取得獨(dú)占鎖定(寫入程序),將 operation 設(shè)為 LOCK_EX(PHP 4.0.1 以前的版本中設(shè)置為 2)
3. 要釋放鎖定(無論共享或獨(dú)占),將 operation 設(shè)為 LOCK_UN(PHP 4.0.1 以前的版本中設(shè)置為 3)
4. 如果你不希望 flock() 在鎖定時堵塞,則給 operation 加上 LOCK_NB(PHP 4.0.1 以前的版本中設(shè)置為 4)

看下面代碼:

a.php
復(fù)制代碼 代碼如下:

<?php
$file = “temp.txt”;
$fp = fopen($file , 'w‘);
if(flock($fp , LOCK_EX)){
fwrite($fp , “abc”);
sleep(10);
fwrite($fp , “123”);
flock($fp , LOCK_UN);
}
fclose($fp);
?>

b.php
復(fù)制代碼 代碼如下:

<?php
$file = “temp.txt”;
$fp = fopen($file , 'r');
echo fread($fp , 100);
fclose($fp);
?>

運(yùn)行 a.php 后,馬上運(yùn)行 b.php ,可以看到輸出:
abc
等 a.php 運(yùn)行完后運(yùn)行 b.php ,可以看到輸出:
abc
123
顯然,當(dāng) a.php 寫文件時數(shù)據(jù)太大,導(dǎo)致時間比較長時,這時 b.php 讀取數(shù)據(jù)不完整,在對b.php做修改
修改 b.php 為:
復(fù)制代碼 代碼如下:

<?php
$file = “temp.txt”;
$fp = fopen($file , 'r‘);
if(flock($fp , LOCK_EX)){
echo fread($fp , 100);
flock($fp , LOCK_UN);
} else{
echo “Lock file failed…”;
}
fclose($fp);
?>

運(yùn)行 a.php 后,馬上運(yùn)行 b.php ,可以發(fā)現(xiàn) b.php 會等到 a.php 運(yùn)行完成后(即 10 秒后)才顯示:
abc
123
讀取數(shù)據(jù)完整,但時間過長,他要等待寫鎖釋放,再對b.php做修改。
修改 b.php 為:
復(fù)制代碼 代碼如下:

<?php
$file = “temp.txt”;
$fp = fopen($file , 'r');
if(flock($fp , LOCK_SH | LOCK_NB)){
echo fread($fp , 100);
flock($fp , LOCK_UN);
} else{
echo “Lock file failed…”;
}
fclose($fp);
?>

運(yùn)行 a.php 后,馬上運(yùn)行 b.php ,可以看到輸出:
Lock file failed…
證明可以返回鎖文件失敗狀態(tài),而不是向上面一樣要等很久。
服務(wù)器之家小編結(jié)論:
建議作文件緩存時,選好相關(guān)的鎖,不然可能導(dǎo)致讀取數(shù)據(jù)不完整,或重復(fù)寫入數(shù)據(jù)。
file_get_contents 好像選擇不了鎖,不知道他默認(rèn)用的什么鎖,反正和不鎖得到的輸出一樣,是不完整的數(shù)據(jù)。

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日韩av一区二区在线观看 | 欧美一二 | av在线免费播 | 久久99国产精品久久99果冻传媒 | 国产高清精品在线 | 自拍视频在线 | 亚洲日本国产 | 欧美一区二区三区在线观看视频 | 久久99精品久久久久蜜臀 | 亚洲精品资源在线观看 | 成av在线 | 日本高清中文字幕 | 欧美视频在线看 | 久久九九免费 | 国产欧美在线观看 | 久久久久久综合 | 精品国产乱码久久久久久久 | 波多野结衣一区二区三区免费视频 | 真实的国产乱xxxx在线 | 先锋影音av在线 | 欧美在线视频一区 | 国产中文字幕在线 | 国产免费一区二区三区 | 婷婷久久综合 | 国产精品女教师av久久 | 久久国产精品久久国产精品 | 国产成人一区二区 | 国产一级黄 | 久久这里只有精品久久 | 精品国产一区二区三区久久 | 欧美一区二区三区四区不卡 | youjizz国产| 国产女人爽到高潮免费视频 | 中文成人在线 | 亚洲91| 国产在线一区二区三区 | 五月宗合网| 91视频专区 | av免费网站| 99黄色片| 日韩国产欧美 |