Perl通过windows上的inetd读取STDIN错误“错误的文件描述符”

时间:2013-06-16 14:54:37

标签: windows perl stdin inetd

我在Windows上通过Cygwin配置了inetd,并作为服务启动。

剧本:

use strict;
use warnings;

use IO::Socket;
use IO::Handle;
use IO::File;
use IO::Select;

print "input something\n";
STDOUT-> autoflush (1);

my $data = <STDIN> || die "(Failed reading STDIN) $^E (Error) $! (End)\n";

在命令行上:

telnet localhost <port>

立即失败:

(Failed reading STDIN) The parameter is incorrect (Error) Bad file descriptor (End)

我一直在寻找整个谷歌但无法找到解决方案。 任何人都可以点亮它吗?

赞赏!

<小时/> 的更新 感谢回复,我知道IO :: Socket不会成为Telent服务器,但是通过设置cygwin inetd,它就变成了一个。 Telnet到端口Works,并调用inetd.conf中的脚本。 STDOUT也有效。唯一不起作用的是STDIN。我有一个供人们提交命令的工具,该工具通过端口将协同作为STDIN发送到inetd服务器。相同的机制适用于所有unix,如平台,solaris,hp,linux,aix。只是不在窗户上......

我不明白的一件事是,为什么STDIN已经关闭,我们有办法调试吗?提前谢谢!

1 个答案:

答案 0 :(得分:1)

这似乎是Cygwin&amp;从ClearCase VOB调用Perl。 供将来参考:我在Cygwin中编译了perl并从inetd脚本中调用它。据我所知,情况正常。