fsync(2) 手册页告诉同步目录是否明确需要同步文件。
io包中Java的sync方法怎么样?有没有在意?它是否取决于操作系统和/或文件系统?
我在http://docs.oracle.com/javase/7/docs/api/java/io/FileDescriptor.html#sync中发现没有任何帮助...
fsync(2) 手册页告诉同步目录是否明确需要同步文件。
io包中Java的sync方法怎么样?有没有在意?它是否取决于操作系统和/或文件系统?
我在http://docs.oracle.com/javase/7/docs/api/java/io/FileDescriptor.html#sync中发现没有任何帮助...
fsync
手册页指出,调用文件fsync
并不意味着关联的目录也将被 fsync。如果需要,fsync
必须为目录调用。
我可以看到该定义/行为的几个充分理由:
顺便说一句,让我们看看 Java 的定义/行为。
JavaDoc 没有提及与目录等相关文件系统对象有关的任何内容。此外,我看不到获取FileDescriptor
目录实例的方法。
根据其源代码查看 OpenJDK 实现的行为,只需在 UNIX 和Windows上java.io.FileDescriptor.sync()
触发。fsync
FlushFileBuffers
所以,不,java.io.FileDescriptor.sync()
不会以任何方式影响关联的目录。