【发布时间】:2014-02-20 02:50:34
【问题描述】:
我只是想知道为什么 Perl 中没有“刷新”功能。 “perldoc -f close”说
close 关闭与文件句柄关联的文件或管道, 冲洗 IO 缓冲区,并关闭系统文件描述符。
但是 Unix 联机帮助页“man 2 close”说:
成功关闭并不能保证数据已经 成功保存到磁盘,因为内核延迟写入。这并不常见 当流关闭时刷新缓冲区的文件系统。如果你 需要确保使用 fsync(2) 物理存储数据。 (它 此时将取决于磁盘硬件。)
现在,据我所知,Perl 中没有 fsync 函数。当然,Perl 的 close 可以调用 fsync()。但即便如此,“man 2 close”说它取决于硬件,我不知道其他操作系统会发生什么。因此我的问题。我想确保缓冲区已刷新。
【问题讨论】: