1
我正在使用perl腳本,我需要檢查不同服務器上的多個遠程文件的內容。 裏面我的循環,我得到這個:perl - 安全地打開文件
my $file = "\\\\$myserver\\c\$\\$mydirectory\\$myfile";
if (open (FILE, "<", $file))
{
# do some work
close (FILE);
}
這是工作的罰款,如果大部分的時間,但今天我有一個非常具體的問題。其中一臺服務器的Windows目錄已被刪除,無法響應。 我甚至無法殺死運行腳本的終端。 於是我開始了一種有超時在網上搜索,但經過長時間的搜尋後,我發現這一點:
上MSWin32阻塞I/O
報警(2)不中斷阻塞I/O在MSWin32上,所以'超時'也不會這樣做。
由於幾乎所有的解決方案都使用函數報警,我不知道如何防止我的腳本形式再次陷入困境。
ps:我試圖使用系統調用來打印文件,但我得到同樣的問題,甚至直接形成一個CMD,而不是腳本。
我不知道,實際上幫助的問題。 OP用來測試打開工作的方法很好 - 它只是阻塞,這也不起作用。 – Sobrique
我同意你這是一個更優雅的方式來打開文件,但它與我的問題沒有關係 –