perl中的read()是否存在相反的相反,例如C中的fwrite()



在perl中,可以在文件上使用read函数进行缓冲读取,例如C的fread((。但是,perl中的写功能"不是读取的不幸",而是"用于将格式的记录写成文件"(http://www.perlfect.com/articles/articles/perlfile.shtml(。该链接建议使用打印。但是,与C中的读取和fwrite((不同,c返回读取/书面的项目数,只返回布尔值,该布尔值表示输出是否成功(https://perldoc.perl.org/functions/print.html(。

还是C的结果是无用的,因为部分可能已经成功地写入缓冲区,但实际上还没有浮动到文件中?与Perl的Read和C的fread((相比,这似乎是一种不对称性,它可以保证返回的项目的数量实际上已成功地从文件中读取到缓冲区中。因此,如果Fwrite((的返回值不可靠,则它报告了所有项目已成功编写。另一方面,人们可能会争辩说,如果返回值报告简短的写入,则至少有用,因为在这种情况下,在实际试图冲洗到文件时必须发生错误,因此人们知道报告的项目(尽管很短,但实际上都被成功地写入文件。

syswrite((和sysread((大约与要获得的近距离。这些功能使用Write(2(,并在引擎盖下读取(2(。

参数签名就像c的read((/write((函数,因为它们处理了原始字节,而不是已知大小的n个元素。

标准注意:除非您陷入痛苦或深魔法,否则请勿将Perl的正常格式I/O与SysRead((/syswrite((((/syswrite((在同一手柄上混合使用。

最新更新