在NFS上执行非阻塞sysread时获取随机的零块(Perl)

时间:2014-03-17 22:57:28

标签: linux perl null nfs

我有一个perl脚本,其行为类似于" tail -f"通过NFS安装的许多文件。我编写代码的方式是:

$ bytes = sysread(FH,$ buffer,1024 * 1024);

大多数时候,一切都很顺利。但是,每隔一段时间,我就会在缓冲区中间得到一个零字符块。我假设这是因为在sysread()调用开始时,有X个字符可用,然后在sysread调用进行时,有更多数据可用。不幸的是,某些东西似乎导致它跳过一大块数据,导致空字节。

有没有其他人遇到过这样的情况并解决了?

仅供参考,我的perl是5.8.8,我的操作系统是Linux,内核版本是2.6.18-194.17.4.el5 - 不,更新操作系统或Perl不是一个选项,这是一个生产服务器

0 个答案:

没有答案