什么文件系统操作需要是原子的?

unlink
fsync
rename
是唯一按定义原子的吗? 编辑:原子意味着操作成功并具有效果或失败并且无效;操作必须不会失败并产生影响。 很明显,如果内核发生混乱,程序无法处理操作失败的错误,但在这种情况下必须考虑它确实失败了     
已邀请:
我不确定
fsync(2)
是原子的;如果一个文件在缓冲区缓存中有100兆字节脏,那么将该数据写出来需要几秒钟,并且在传输到磁盘的过程中内核可能会崩溃。也许板载的DMA引擎只能处理4兆字节的写入。也许没有DMA支持,CPU必须通过512字节块调度每次写入。 “原子”是什么意思?
mkdir
可能是'原子',要么目录存在于磁盘上并且链接到父目录,要么目录数据结构尚未链接到父目录,因此无法访问 - >不存在。 同样可能适用于
mount(2)
:很难找到
mount(2)
中途完成,如果失败,整个挂载失败:文件系统已挂载,或者不是。
umount(2)
很有趣,它可以懒散地完成,但一旦卸下它就不能用于
open(2)
creat(2)
来电。 所以,我想这归结为,'原子'是什么意思? :)     
这是一篇列出一些原子文件操作的文章: http://rcrowley.org/2010/01/06/things-unix-can-do-atomically.html
mv
link
symlink
mkdir
和打开文件的某些方式是原子的。     

要回复问题请先登录注册