sync,是同步整个系统的磁盘数据的.
fsync是同步打开的一个文件到缓冲区数据到磁盘上.
fflush是刷新打开的流的.
fsync(将缓冲区数据写回磁盘)
相关函数 sync
表头文件 #include<unistd.h>
定义函数 int fsync(int fd);
函数说明 fsync()负责将参数fd所指的文件数据,由系统缓冲区写回磁盘,以
确保数据同步。
返回值 成功则返回0,失败返回-1,errno为错误代码。
传统的U N I X实现在内核中设有缓冲存储器,大多数磁盘I / O都通过缓存进行。当将数据写
到文件上时,通常该数据先由内核复制到缓存中,如果该缓存尚未写满,则并不将其排入输出
队列,而是等待其写满或者当内核需要重用该缓存以便存放其他磁盘块数据时,再将该缓存排
入输出队列,然后待其到达队首时,才进行实际的I / O操作。这种输出方式被称之为延迟写
(delayed write)(Bach 〔1 9 8 6〕第3章详细讨论了延迟写)。延迟写减少了磁盘读写次数,但是
第4章文件和目录8 7
下载
却降低了文件内容的更新速度,使得欲写到文件中的数据在一段时间内并没有写到磁盘上。当
系统发生故障时,这种延迟可能造成文件更新内容的丢失。为了保证磁盘上实际文件系统与缓
存中内容的一致性,U N I X系统提供了s y n c和f s y n c两个系统调用函数。
#include <unistd.h>
void sync(void);
int fsync(intf i l e d e s) ;
返回:若成功则为0,若出错则为-1
s y n c只是将所有修改过的块的缓存排入写队列,然后就返回,它并不等待实际I / O操作结束。
系统精灵进程(通常称为u p d a t e )一般每隔3 0秒调用一次s y n c函数。这就保证了定期刷新内
核的块缓存。命令s y n c ( 1 )也调用s y n c函数。
函数f s y n c只引用单个文件(由文件描述符f i l e d e s指定),它等待I / O结束,然后返回。f s y n c可
用于数据库这样的应用程序,它确保修改过的块立即写到磁盘上。比较一下f s y n c和O _ S Y N C标
志(见3 . 1 3节)。当调用f s y n c时,它更新文件的内容,而对于O _ S Y N C,则每次对文件调用w r i t e
函数时就更新文件的内容。
分享到:
相关推荐
Linux内核驱动fsync机制实现图解.docx
下面小编就为大家带来一篇函数sync、fsync与fdatasync的总结整理(必看篇)。小编觉得挺不错的。现在就分享给大家。也给大家做个参考。一起跟随小编过来看看吧
Linux系统调用fsync函数详解.docx
sync()、fsync()和fdatasync()系统调用 第十六章访问文件 读写文件 内存映射 直接I/O传送 异步I/O 第十七章回收页框 页框回收算法 反向映射 PFRA实现 交换 第十八章Ext2和Ext3文件系统 ...
好用的文件夹比较,同步软件,适用于所用软件及数据增量备份恢复。
Linux内核源代码导读-陈香兰-中国科学技术大学-ext2文件系统
The sync( ), fsync( ), and fdatasync( ) System Calls Chapter 16. Accessing Files Section 16.1. Reading and Writing a File Section 16.2. Memory Mapping Section 16.3. Direct I/O Transfers ...
linux笔记相关vim命令
fsync(将缓冲区数据写回磁盘) 85 9.8 85 lseek(移动文件的读写位置) 85 9.9 86 mkstemp(建立唯一的临时文件) 86 9.10 86 open(打开文件) 86 9.11 88 read(由已打开的文件读取数据) 88 9.12 89 sync(将...
主要介绍了node.js中的fs.fsync方法使用说明,本文介绍了fs.fsync的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
fsync-编码-解码用于特定数据突发格式的软件调制解调器该库支持以 1200 和 2400 bps 对 Kenwood 的 FleetSync 和 FleetSync II 格式进行解码(编码将在以后的版本中添加)。 (其各自所有者的所有商标财产) GPL ...
使用Package Control ,在下面添加存储库(Preferences > Package Control > Add Repository)并正常安装FSync包。 https://github.com/weverss/FSync 如果您没有安装 Package Controll,请参阅进行安装。
共享资源需要保护,防止被并发访问。共享资源之所以需要防止被并发访问,是因为如果多个执行线程同事访问和操作数据,就有可能发生个线程之间相互覆盖共享数据的情况,造成被访问数据处于不一直状态。...
fsync()变为NO-OP,O_SYNC被删除等。 这个想法是在测试中使用,以在不需要真正耐用性的情况下获得更快的测试运行速度。 不要在关心软件存储内容的软件上使用libeatmydata。 由于某种原因,它被称为lib EAT-MY-...
第4章 文件和目录 54 4.1 引言 54 4.2 stat, fstat和lstat函数 54 4.3 文件类型 55 4.4 设置-用户-ID和设置-组-ID 57 ...4.24 sync和fsync函数 87 4.25 文件存取许可权位小结 88 4.26 小结 89 习题 89
Steam futex / fsync补丁 SirLucjan回购中的补丁 清除Linux补丁 模块,内核和initram压缩的优化默认值 稍微调整vm / vfs / cfs设置 归功于所有内核开发人员和: 霍尔格·霍夫施塔特(HolgerHoffstätte) 卢肯爵士...
LINUX下禁止ping命令的使用 以root进入Linux系统,然后编辑文件icmp_echo_ignore_allvi /proc/sys/net/ipv4/icmp_echo_ignore_all将其值改为1后为禁止PING将其值改为0后为解除禁止PING 直接修改会提示错误: WARNING:...
s3fsync --key={yourawskey} --secret={yourawssecret} --bucket={yourawsbucket} --region={yourbucketregion} 如果需要与存储桶中的子文件夹同步,请使用以/结尾的prefix参数: s3fsync --prefix=subfolder/ . ...