成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP:flock()的用法_Filesystem函數
全站頭部文字 我要出現在這里
PHP:flock()的用法_Filesystem函數 705 2023-12-15   

flock

(PHP 4, PHP 5)

flock — 輕便的咨詢文件鎖定

說明

bool flock ( resource $handle , int $operation [, int &$wouldblock ] )

flock() 允許執行一個簡單的可以在任何平臺中使用的讀取/寫入模型(包括大部分的 Unix 派生版和甚至是 Windows)。

在 PHP 5.3.2版本之前,鎖也會被 fclose() 釋放(在腳本結束后會自動調用)。

PHP 支持以咨詢方式(也就是說所有訪問程序必須使用同一方式鎖定, 否則它不會工作)鎖定全部文件的一種輕便方法。 默認情況下,這個函數會阻塞到獲取鎖;這可以通過下面文檔中 LOCK_NB 選項來控制(在非 Windows 平臺上)。

參數

handle

文件系統指針,是典型地由 fopen() 創建的 resource(資源)。

operation

operation 可以是以下值之一: LOCK_SH取得共享鎖定(讀取的程序)。 LOCK_EX 取得獨占鎖定(寫入的程序。 LOCK_UN 釋放鎖定(無論共享或獨占)。

如果不希望 flock() 在鎖定時堵塞,則是 LOCK_NB(Windows 上還不支持)。

wouldblock

如果鎖定會堵塞的話(EWOULDBLOCK 錯誤碼情況下),可選的第三個參數會被設置為 TRUE。(Windows 上不支持)

返回值

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

更新日志

版本 說明 5.3.2 在文件資源句柄關閉時不再自動解鎖。現在要解鎖必須手動進行。 4.0.1 增加了常量 LOCK_XXX。 之前你必須使用 1 代表 LOCK_SH,2 代表 LOCK_EX,3 代表LOCK_UN,4 代表 LOCK_NB

范例

Example #1 flock() 例子

<?php

$fp = fopen("/tmp/lock.txt", "r+");

if (flock($fp, LOCK_EX)) {  // 進行排它型鎖定
    ftruncate($fp, 0);      // truncate file
    fwrite($fp, "Write something heren");
    fflush($fp);            // flush output before releasing the lock
    flock($fp, LOCK_UN);    // 釋放鎖定
} else {
    echo "Couldn't get the lock!";
}

fclose($fp);

?>

Example #2 flock() 使用 LOCK_NB 選項

<?php
$fp = fopen('/tmp/lock.txt', 'r+');

/* Activate the LOCK_NB option on an LOCK_EX operation */
if(!flock($fp, LOCK_EX | LOCK_NB)) {
    echo 'Unable to obtain lock';
    exit(-1);
}

/* ... */

fclose($fp);
?>

注釋

Note:

flock() uses mandatory locking instead of advisory locking on Windows. Mandatory locking is also supported on Linux and System V based operating systems via the usual mechanism supported by the fcntl() system call: that is, if the file in question has the setgid permission bit set and the group execution bit cleared. On Linux, the file system will also need to be mounted with the mand option for this to work.

Note:

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

Note:

May only be used on file pointers returned by fopen() for local files, or file pointers pointing to userspace streams that implement the streamWrapper::stream_lock() method.

Warning

Assigning another value to handle argument in subsequent code will release the lock.

Warning

在部分操作系統中 flock() 以進程級實現。當用一個多線程服務器 API(比如 ISAPI)時,可能不可以依靠 flock() 來保護文件,因為運行于同一服務器實例中其它并行線程的 PHP 腳本可以對該文件進行處理。

flock() 不支持舊的文件系統,如 FAT 以及它的派生系統。因此,此環境下總是返回 FALSE(尤其是對 Windows 98 用戶來說)。


主站蜘蛛池模板: 荒岛大逃亡电影| 新世纪大学英语综合教程3| 大秦帝国第一部免费看| 草原大作战| 爱情岛论坛.| 莱诺| 熊出没十年之约| cctv神断狄仁杰第四部免费观看| 二年级上古诗26首打印| 南游记电视剧全集第30集| 梁祝吉他谱独奏完整| 欧美吻戏视频| 嗯啊不要啊啊| 吃什么皮肤白的最快| 张猛龙魏碑字帖大全| 生死劫杀1946| 谷桃子| 香蜜沉沉烬如霜电视剧演员表| 好一个中国大舞台简谱| 谁的青春不迷茫 电影| 好好操视频| 七下语文第一单元作文| 即便是爸爸也想恋爱| 香帅传奇| 诗第十二主要内容| 男人天堂视频| 邓为个人简介| 北京卫视节目单全天| 玫瑰的故事剧情简介| 黄网站免费在线播放| 尹馨演过的三部电影| 摇曳山庄的幽灵| 中国未来会黑人化吗| 丰满妇女做a级毛片免费观看| ,xx| 家庭理论电影| 装饰色彩| 果宝特攻5 2030| 白蛇三| 电影疯狂之人| 马克·吐温|

?。?!站長長期在線接!??!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103