PHP4用戶手冊:函數-flock

flock
(PHP 3>= 3.0.7, PHP 4 >= 4.0.0)flock — 鎖定文件描述
bool flock (int fp, int operation [, int wouldblock])
PHP 支持在訪問文件時完全的鎖定文件(這意味著所有的訪問程序不得不使用相同的鎖定方式,或者它不工作)。
flock() 運行在打開的文件指針fp之上。
operation 是下列值之一:
獲得一個共享鎖(可讀),設置為LOCK_SH (PHP 4.0.1以下設置為1);
獲得一個互斥鎖(隻有自己可寫),設置為LOCK_EX (PHP 4.0.1以下設置為2);
釋放鎖(釋放共享鎖或互斥鎖),設置為LOCK_UN (PHP 4.0.1以下設置為3);
如果當鎖定時你不想flock() 塊,添加LOCK_NB (PHP 4.0.1以下設置為4)。
flock() 允許你在每一個平臺上能被使用簡單的讀/寫模式 (包括眾多的 Unix 派生系統和 Windows系統). 如果你想鎖住塊,你可以設置第三個參數為 TRUE (EWOULDBLOCK errno condition)
flock() 返回 TRUE 為成功;返回 FALSE 為失敗 (e.g. when a lock could not be acquired).
註意: 因為 flock() 需要一個文件指針,you may have to use a special lock file to protect access to a file that you intend to truncate by opening it in write mode (with a “w” or “w+” argument to fopen()).

警告
flock() 在NFS和其他的網絡文件系統中將不工作。詳細資料請查閱你的操作系統文件。
有些操作系統 flock() 的執行需要在一定的執行級別上。當使用多線程系統API象ISAPI,你不可以依賴flock()去保護文件,相反其他的 PHP 腳本正在同一的服務器的實例中平行線程中運行。

You May Also Like