我用什么从STDIN读取/写入STDOUT的子进程?
问题描述:
我有一个可执行文件从STDIN读取,输出到STDOUT。我用什么从STDIN读取/写入STDOUT的子进程?
我需要一个Perl脚本,它将这个可执行文件作为一个子进行分叉,并写入该子进程的STDIN并从STDOUT中读取。
这是Windows所必需的。任何想法或建议?
答
规定的解决方案是IPC::Open2模块,但下面的代码可能会挂在Windows上。
#! /usr/bin/perl
use warnings;
use strict;
use IPC::Open2;
my $pid = open2 my $out, my $in, "./myfilter.exe";
die "$0: open2: $!" unless defined $pid;
print $in "$_\n" for qw/ foo bar baz /;
close $in or warn "$0: close: $!";
while (<$out>) {
chomp;
print "Parent: [$_]\n";
}
close $out or warn "$0: close: $!";
+0
似乎有适用于Windows没有清晰的解决方案。 – Avinash 2010-08-16 17:15:32
'perldoc -q'应该被广告更多。 – Dummy00001 2010-08-16 21:40:13