我知道现代 *nix 操作系统允许打开文件,以便数据不会缓存在系统/磁盘写入缓存中,因此只有当数据以物理方式写入磁盘时,任何写入操作才会完成。
你能建议我如何在 Perl 中做到这一点吗?
操作系统是 AIX/Solaris。
最佳答案
使用 sysopen 函数并将 O_SYNC 作为标志之一。检查系统手册页中支持的标志(man 2 open)。我知道 Solaris 10 上有它,但不确定 AIX 上是否有。例如:
sysopen(FH, $path, O_SYNC | O_WRONLY | O_CREAT)
关于Perl:打开文件而不写入缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4448628/