Linux中如何调用fsync函数?针对这个问题,本文详细介绍了相应的分析和解决方法,希望能帮助更多想解决这个问题的伙伴找到更简单易行的方法。

功能描述:

将内存中所有已修改的文件数据同步到存储设备。

用法:

#包含unistd.h

int fsync(int FD);

参数:

文件描述符。

回到描述:

成功执行后,它返回0。失败返回-1,errno设置为下列值之一

无效的文件描述符

EIO:读写时出错

文件所在的文件系统不支持同步

强行把系统缓存写入文件同步和fsync函数,fflush和fsync的联系和区别。2010-05-10-11:25传统的U N I X实现在内核中有缓冲内存,大部分磁盘I/O都是通过缓存进行的。当写入数据时

当转到一个文件时,数据通常由内核首先复制到缓存中。如果缓存未满,将不会输出。

排队,但等待它被填满或当内核需要重用缓存来存储其他磁盘块数据时,然后将缓存排队

进入输出队列,然后当它到达队列头时,将执行实际的I/O操作。这种输出模式称为延迟写入

(延迟写作)(巴赫[1 9 8 6]第3章详细讨论了延迟写作)。延迟写入减少了磁盘读取和写入的次数,但是

第4章文件和内容8 7

下载

但是降低了文件内容的更新速度,使得要写入文件的数据在一段时间内不会写入磁盘。什么时候

当系统出现故障时,这种延迟可能会导致文件更新丢失。为了保证磁盘上的实际文件系统缓慢

U N I X系统提供了两个系统调用函数:s y n c和f s y n c。

#包含unistd.h

void sync(void);

int fsync(intf I l e d e s);

返回:成功时为0,错误时为-1

S y n c只是将所有修改块的缓存排入写队列,然后返回。它不等待实际的输入输出操作结束。

系统向导进程(通常称为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指定)。它等待输入输出结束,然后返回。F s y n c can

对于数据库等应用程序,它可以确保修改后的数据块立即写入磁盘。比较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到文件

函数,文件的内容被更新。

fflush与fsync的联系与区别

[ZZ]http://blog.chinaunix.net/u2/73874/showart_1421917.html

1.provider fflush是libc.a中提供的方法,fsync是系统提供的系统调用。2.原型fflush接受参数FILE *。fflush(FILE *);当fsync接受时,它是一个Int文件描述符。fsync(int FD);3.函数fflush:是把C库中的缓冲区调用write函数写到磁盘上[其实是写到内核的缓冲区]。Fsync:就是把内核缓冲刷到磁盘上。

c库缓冲区-fflush->内核缓冲区-> fsync->磁盘

Linux中如何调用fsync函数这个问题的答案在这里分享。希望以上内容能对大家有所帮助。如果你还有很多疑问,你可以关注微子网络,了解更多。

linux c sync函数,怎么在Linux中调用fsync函数相关推荐

  1. python中execute函数_在excel中调用python函数

    效果: 通过excel引用在py文件中写好的load_settle()函数,可以快捷的获取对应的历史结算价. 使用方法: 1.首先安装office,我用的是2016版本. 2.安装python,推荐使 ...

  2. (c++)5.4构造函数和析构函数中调用虚函数

    在构造函数和析构函数中调用虚函数时,采用静态联编(他们所调用的虚函数是自己类中定义的函数) 如果在自己类中没有实现这个虚函数,则调用的是基类中的虚函数,绝不会是任何在派生类中重定义的虚函数 //构造函 ...

  3. 在.c文件中调用cuda函数

    在.c文件中调用cuda函数 2014-04-19 17:17 446人阅读 评论(0) 收藏 举报 分类: cuda编程(1) 版权声明:本文为博主原创文章,未经博主允许不得转载. 问题描述:假设在 ...

  4. 本地方法(JNI)——从java 程序中调用C函数

    [0]README 1) 本文部分文字描述 转自 core java volume 2 , 旨在理解 本地方法--从java 程序中调用C函数 的基础知识 : 2) for source code, ...

  5. Iar环境c语言调用汇编函数,如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数?...

    我在硬故障处理程序中有一些程序集.程序集基本上是为了传递当前堆栈指针作为参数(在R0中).它看起来像这样...如何在IAR EWARM中通过内联汇编程序在另一个模块中调用C函数? __asm(&quo ...

  6. C++中最好不要在构造函数和析构函数中调用虚函数!!!

    1.最好不要在基类和派生类的构造和析构函数中调用虚函数,不会出现多态性 实例如下: #include "iostream"using namespace std;class Bas ...

  7. r语言中调用c 程序,如何在R程序包中调用C函数

    程序包名称为pareto.这是.c文件中src目录:如何在R程序包中调用C函数 #include #include #include "Rinternals.h" #include ...

  8. 开机启动加载驱动过程中调用PostMessage函数出错

    今天在WINCE5.0+S3C2440系统调试检测出租车是否载客的驱动的时候遇到这样的问题: 发现在开机启动加载驱动过程中调用PostMessage函数时会导致调用的线程崩溃,比如如果下面的线程在创建 ...

  9. C# 构造函数中调用虚函数

    C# 构造函数中调用虚函数 using System; using System.Diagnostics; using System.Text; using System.Collections; u ...

最新文章

  1. 【Linux 内核】进程管理 ( 内核线程概念 | 内核线程、普通进程、用户线程 | 内核线程与普通进程区别 | 内核线程主要用途 | 内核线程创建函数 kernel_thread 源码 )
  2. 欧几里得算法扩展欧几里得算法
  3. 禅道需要启动php么,2.使用说明与示例
  4. 32获取外部中断状态_Linux中断一网打尽(1) — 中断及其初始化
  5. 华为P50相机新升级:或首发索尼最大底手机CMOS
  6. 【Vue2.0】—vue-router(二十六)
  7. 技术书籍也香艳-《Head First设计模式》第二版即将出版
  8. 【证明】对称矩阵的特征值为实数
  9. java 图片压缩100k_Java 图片压缩至指定大小
  10. python repl_Python自学第二天 REPL+基础语法
  11. 关于outlook签名图片大小的说明
  12. 偷偷看,别让老板发现了...微信如何多开,实现工作号和私人号分离|亲测,win系列所有系统都可以实现
  13. oracle rr与yy日期格式
  14. 华为云CDN,给企业发展按下“加速键”
  15. 使用abel533大神的mybatis分页插件总结
  16. 芯片商洗牌战拉开序幕 指纹识别技术独霸市场
  17. 照明基础知识(一)---白炽灯(热辐射光源)发展史工作原理
  18. 计算机远程病理会诊准确率,数字病理远程诊断
  19. HUST 1010 The Minimum Length
  20. Full Chip Erase Done.Programming Failed!RDDI-DAP ErrorError: Flash Download failed - “Cortex-M4

热门文章

  1. 解析数字时代的少儿steam教育
  2. 10个商品图策略,引导亚马逊卖家提升客户购物体验
  3. Java中的Type类型详解
  4. MySQL通过数据文件恢复数据库
  5. 好分销微信公众号营销|微商城三级分销系统平台|微店分销软件
  6. 猜猜看软件-学习总结(不定时更新)
  7. java 数组升序排序_Java sort()数组排序升序详解
  8. resolution will not be reattempted until the update interval of vas has elap
  9. jsplumb设置锚点_拓扑图编辑器-jsplumb基本配置
  10. JavaScript二维数组和函数