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
我同意你这是一个更优雅的方式来打开文件,但它与我的问题没有关系 –