Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
perl中是否有read()的反面,比如C中的fwrite()?_C_Perl - Fatal编程技术网

perl中是否有read()的反面,比如C中的fwrite()?

perl中是否有read()的反面,比如C中的fwrite()?,c,perl,C,Perl,在perl中,可以使用read函数对文件进行缓冲读取,如C的fread。然而,perl中的write函数并不是read函数的对立面。不幸的是,但用于将格式化记录写入文件。该链接建议改用打印。但是,与C中的read和fwrite返回读/写的项目数不同,print只返回一个表示输出是否成功的布尔值 或者C的fwrite的结果是无用的,因为部分可能已成功写入缓冲区,但实际上尚未刷新到文件中?与perl的read和C的fread相比,这似乎是一种不对称性,后者保证返回的项目数实际上已成功地从文件读入缓冲

在perl中,可以使用read函数对文件进行缓冲读取,如C的fread。然而,perl中的write函数并不是read函数的对立面。不幸的是,但用于将格式化记录写入文件。该链接建议改用打印。但是,与C中的read和fwrite返回读/写的项目数不同,print只返回一个表示输出是否成功的布尔值


或者C的fwrite的结果是无用的,因为部分可能已成功写入缓冲区,但实际上尚未刷新到文件中?与perl的read和C的fread相比,这似乎是一种不对称性,后者保证返回的项目数实际上已成功地从文件读入缓冲区。因此,如果fwrite报告所有项都已成功写入,那么它的返回值就不可靠。另一方面,人们可能会争辩说,如果返回值报告短写,则返回值至少是有用的,因为在这种情况下,在实际尝试刷新文件时一定发生了错误,因此可以确定报告的项目数虽然短,但实际上已成功写入文件。

syswrite和sysread,你会离得很近。这些函数在引擎盖下使用write2和read2

参数签名类似于C的读/写函数,因为它们处理原始字节,而不是已知大小的n个元素

标准警告:不要在同一个句柄上混合使用perl的正常格式I/O和sysread/syswrite,除非您陷入痛苦或深深的魔法之中