【发布时间】:2019-10-03 16:18:20
【问题描述】:
在 Perl 中从管道中读取 x 个二进制字节的最佳方法是什么?使用 sysread 仅返回 8K 字节。在继续脚本的其余部分之前,我需要从管道中读取大约 1GB 的字节。显然,我可以自己将所有 8K 块组合在一起,但我希望这样的东西已经存在,而不必自己编写代码。
【问题讨论】:
-
我尝试使用 read,不幸的是它也从管道返回 8K。
-
也许它不是可移植的,它会在所有操作系统和管道上执行此操作。我认为循环直到你有你想要的输入量是最好的选择。
-
@Grinnz, Re "如果您指定的长度尚不可用,则读取函数将等待",绝不保证会这样做。事实上,当它是一个管道时,它并不总是等待。 What is the difference between
readandsysread? -
这是怎么回事?投票重新开放。