sync和fsync函数

版权声明:欢迎大家提出意见,指出错误,互相交流。 https://blog.csdn.net/qq_28796345/article/details/50836390

为了 保证磁盘上实际文件系统与缓存中内容的一致性(在系统中,设有缓冲存储器,将数据写到文件上的时候,需要通过缓冲器加入队列,缓冲器满以后再进行数据的写入,这样就会导致数据不同步,存在一定的误差),可以通过sync和fsync函数来实现:

#include<unistd.h>

void sync(void);

int fsync(int fd);

sync将所有修改过的块的缓存排入写队列,然后返回,并不等待实际I/O操作结束(update一般30s调用一次sync函数)

fsync只引用单个文件(由fd指定),等待I/O结束,然后返回(可用于数据库中,可以确保修改过的块立即写到磁盘中)

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页