疑问,关于一个I/O buffering

jan4984 2008-05-16 12:38:47
Windows XP系统
vc 6.0
activeperl 5.8.4

test.c:
int main(void){
int n;
while(1){
scanf("%d", &n);
printf("%d", n);
}
return 0;
}

test.pl
IPC::Open2(*RD,*WR,'test.exe');
print WR "123\n";
print readline(RD);

问题:
为何运行test.pl readline(RD)阻塞在那里而不能获得test.c中的输出?
如果是test.exe自己缓冲了STDOUT的话,为何cmd.exe下运行test.exe输入123 <CRLF>可以马上看到输出?
...全文
95 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jan4984 2008-05-21
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 iambic 的回复:]
你的IPC包是怎么装的?PPM?CPAN?还是自己下载了编译的?
[/Quote]
activeperl自带的,你说的PPM应该是linux的安装包吧,我用的是win32下的安装版本——activeperl 5.8.4
iambic 2008-05-21
  • 打赏
  • 举报
回复
ppm好像是ActivePerl的特色啊。不知道为什么,我的机器上没有,用ppm找也没找到。
iambic 2008-05-20
  • 打赏
  • 举报
回复
你的IPC包是怎么装的?PPM?CPAN?还是自己下载了编译的?
jan4984 2008-05-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iambic 的回复:]
printf("%d", n);
改成
printf("%d\n", n);
试下。
[/Quote]
试了,没用。哎。
iambic 2008-05-16
  • 打赏
  • 举报
回复
printf("%d", n);
改成
printf("%d\n", n);
试下。

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧