我需要創建一個不能被其它腳本或程序被刪除鎖定文件的文件。我嘗試這樣做:如何鎖定對外部進程
$f = fopen($pidFile, 'w');
fwrite($f, getmypid());
flock($f, LOCK_EX);
但任何其他進程從當前用戶開始可以刪除,即使文件句柄仍然由行書打開$f
文件。如何解決這個問題,並防止其他人(即非PHP進程)刪除該文件?當進程退出時鎖會自動釋放?所有類似的問題都以RTM flock()結尾,但他們都沒有回答如何鎖定文件以抵禦外部進程。
OS是Linux 2.6.32-431.el6.x86_64
'flock'是 「顧問」,不嚴格。使用[附加檢查](http://stackoverflow.com/questions/20771824/php-test-if-file-is-locked),然後再對腳本中的任何文件進行處理。如果是關於你自己的PHP腳本的話,這將起作用。如果是關於外部過程 - 那麼'flock'不能保存案例。 –
正如我在我的問題提到的,我需要鎖定文件,以防止外部進程刪除(即非PHP太) –