2010-07-01 142 views
2

我有一個有趣的情況我有一個Perl腳本觀察家調用時(使用Linux :: Inotify2)監視的文件在某個目錄被刪除,然後把它們關閉到一個PHP腳本進行處理。觀看目錄及其中的文件不屬於運行觀察程序腳本的用戶,但文件正在轉儲的整個目錄樹是rwxr-xr-x,並且該文件是世界可讀的。PHP腳本無法打開文件從一個Perl腳本

這裏是我的delemma。當使用system(),exec()或``````從perl腳本調用時,PHP腳本無法打開傳遞給它的文件上的文件句柄。然而,PHP腳本可以打開當腳本手動從命令行使用相同的有效用戶上運行相同文件的文件句柄。

任何人有任何想法爲什麼會出現這種情況?

+0

你是否傳遞句柄或文件名?不清楚這個問題。 – Joseph 2010-07-01 19:49:17

+0

你收到什麼錯誤信息? – 2010-07-01 19:55:32

+0

我沒有得到任何錯誤,PHP子shell返回沒有錯誤。正如我在下面對答案的評論中提到的那樣,PHP腳本可以看到文件存在,但是默默無法打開文件句柄。再次,從命令行運行PHP腳本如下: /usr/bin/php script.php文件名 工作正常,腳本可以打開文件'filename'的句柄。但是,在perl腳本中執行相同的操作: system(「/ usr/bin/php script.php文件名」)導致PHP腳本無法打開文件'filename'上的句柄。 – Preston 2010-07-01 21:17:08

回答

0

你fopen()函數調用可能依賴於破裂時的工作目錄的變化相對路徑。

+0

我正在傳遞文件名,並且絕對路徑是在PHP文件中預先填寫的。 PHP文件可以準確地確定傳入的文件*存在*,但無法打開文件句柄。 – Preston 2010-07-01 21:13:34

相關問題