【发布时间】:2011-04-15 23:45:30
【问题描述】:
我有一个程序正在调用另一个程序并处理孩子的输出,即:
my $pid = open($handle, "$commandPath $options |");
现在我尝试了几种不同的方法来读取句柄而不阻塞,但几乎没有成功。
我找到了相关问题:
- perl-win32-how-to-do-a-non-blocking-read-of-a-filehandle-from-another-process
- why-does-my-perl-sysread-block-when-reading-from-a-socket
但是他们遇到了问题:
-
ioctlperl 经常崩溃 -
sysread0 字节上的块(很常见)
我不确定如何解决这个问题。
【问题讨论】:
-
查看this answer -- 使用
select()确定是否有任何数据可供读取。 -
@Ether 选择不适用于 Windows 上的文件句柄
标签: windows perl asynchronous pipe