sync/fsync函数
来源:互联网 发布:柱脚锚栓计算软件 编辑:程序博客网 时间:2024/06/04 19:01
传统的unix在内核中设有缓冲区高速缓存或页面高速缓存,大多数磁盘 I/O都通过缓冲进行。当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队列,而是等待其写满或者当内核需要重用该缓冲区以便存放其他磁盘块数据时,再将该缓冲排入输出队列,然后待其到达队首时,才进行实际的 I/O 操作。这种输出方式被成为延迟写( delayed write )。
延迟写减少了磁盘读写次数,但是却降低了文件内容的更新速度。当系统发生故障时,这种延迟可能造成文件更新内容的丢失。为了保证磁盘上实际文件系统与缓冲区高速缓存中内容的一致性,unix系统提供了sync , fsync, fdatasync 三个函数。
#include<unistd.h>void sync(void);int fsync(int filedes);int fdatasync(int filedes);
返回值:若成功则返回0,出错则返回 -1
sync 函数只是将所有修改过的块缓冲区排入写队列,然后就返回,它并不等待实际写磁盘操作结束。
通常称为 update的系统守护进程会周期性的(一般每隔30秒)调用sync函数。保证了定期冲洗内核的块缓冲区。命令 sync也调用sync函数。
fsync函数只对由文件描述符 filedes 指定的单一文件起作用,并且等待写磁盘操作结束,然后返回。
fdatasync函数类似于 fsync,但它只影响文件的数据部分。
0 0
- fsync、sync、fdatasync函数
- sync/fsync函数
- sync和fsync函数
- sync,fsync,fdatasync函数
- 函数sync fsync fdatasync
- sync、fsync和fdatasync函数
- sync、fsync、fdatasync、fflush函数
- sync、fsync、fdatasync、fflush函数
- sync、fsync、fdatasync、fflush函数
- sync、fsync、fdatasync、fflush函数
- sync、fsync、fdatasync、fflush函数
- sync、fsync和fdatasync函数区别
- unix中的 sync(), fsync(), fdatasync()函数
- 函数sync、fsync与fdatasync总结整理
- sync fsync fdatasync fflush函数区别
- 函数sync、fsync与fdatasync总结整理
- 函数sync、fsync与fdatasync总结整理
- 强制把系统缓存写入文件 sync和fsync函数
- Spring2.5.6 和Spring3.0.5所有jar下载地址
- 2012年5月SAT香港真题解析
- linux crobtab
- Container With Most Water
- linux下创建一个可运行脚本
- sync/fsync函数
- Nginx介绍
- jmeter小结
- 要不要在IOS项目中使用SBJSON库
- 黑马day17 ajax&实现二级联动
- tomcat加载应用程序配置文件顺序
- Android中查看安装程序的信息
- 禁止thunderplatform自启动
- (ros/navigation/gmapping)导航/建地图