栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Unix是否以原子方式对单个文件进行读写操作?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Unix是否以原子方式对单个文件进行读写操作?

单独的

write()
调用是分开处理的,而不是作为单个原子写入事务处理的,并且当多个进程/线程正在向同一个文件写入时,交织是完全可能的。实际写入的顺序由调度程序(两个内核进程调度程序,对于“绿色”线程,则由线程库的调度程序)确定。

除非您另外指定(

O_DIRECT

open
标志或类似内容,如果支持),
read()
并且
write()
对内核缓冲区进行操作,并且
read()
将优先使用已加载的缓冲区来优先读取磁盘。

请注意,这可能会由于本地文件缓冲而变得复杂;例如,

stdio
并且
iostreams
将读取由块的文件数据到在该过程是独立内核缓冲区的缓冲器,所以一个
write()
从别处到在已经缓冲的数据
stdio
将不被看到。同样,在使用输出缓冲之前,在刷新输出缓冲区之前,不会自动有任何实际的内核级输出,要么是因为它已满,要么是自动填充的,或者是由于
fflush()
C
++
endl
(隐式刷新输出缓冲区)而手动进行的。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/412363.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号