手冊
H1>
(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 指令碼正在同一的伺服器的執行個體中平行線程中運行。