ike*_*ami 24
关于read:
read 支持PerlIO层.read适用于任何Perl文件句柄[1].read 缓冲区.read从8 KiB [2]的固定大小的块中获取系统数据.read如果可用的数据少于可用数据,则可以阻止[3].关于sysread:
sysread 不支持PerlIO层(意味着它需要原始的又名二进制句柄).sysread仅适用于映射到系统文件句柄/描述符的Perl文件句柄[4].sysread 不缓冲.sysread 执行单个系统调用.sysread 如果可以返回数据,则立即返回,即使数据量小于请求的数量.总结和结论:
read适用于任何Perl文件句柄,同时sysread仅限于映射到系统文件句柄/描述符的Perl文件句柄.read与[5]不兼容,但兼容.selectsysreadselectread可以为您执行解码,同时sysread要求您自己进行解码.read对于非常小的读取sysread应该更快,而对于非常大的读取应该更快.笔记:
例如,这些包括绑定文件句柄和使用的文件句柄open(my $fh, '<', \$var).
在5.14之前,Perl读入了4个KiB块.从5.14开始,构建时可以配置块的大小,perl默认值为8 KiB.
根据我的经验,read当从普通文件中读取时,将准确返回所请求的数量(如果可能),但从管道读取时可能返回较少.这些结果无法保证.
fileno返回这些的非负数.例如,这些包括从普通文件,管道和套接字读取的句柄,但不包括[1]中提到的句柄.
我指的是IO :: Select调用的4参数.
| 归档时间: |
|
| 查看次数: |
1970 次 |
| 最近记录: |