我在AIX 5.3上的Perl 5.8.2中做了sysread。根据文档,sysread
在读取文件句柄的所有读取时应该给出0。
在我的场景中,文件句柄是STDIN并指向套接字。所以我基本上是从套接字做sysread
。但是我永远不会从sysread
获得0并且它只是阻止,即使在客户端发送了所有数据之后也是如此。
知道可能出现什么问题吗?
感谢。
答案 0 :(得分:5)
你是什么意思“发送所有数据”?当句柄遇到文件结束条件时,sysread
返回零,而当没有更多可用数据现在时,sysread
返回零。对于套接字,当另一端关闭套接字以进行写入时,会发生读取时的EOF。 (好吧,如果发生网络超时等错误,undef
也将返回{{1}},数值等于零。)
答案 1 :(得分:2)
查看select
命令(具有4个参数的命令)。它可以告诉你
是否有任何输入要在您的文件句柄上读取。