关于write()和fsync()

关于write()和fsync()writessize_twrite(intfd,constvoid*buf,size_tcount);将数据写到文件中.注意,如果文件是保存在硬盘中,write()函数调用返回之后,并不表示数据已经写入到硬盘中,这时如果掉电,数据可能会丢失.fsyncintfsync(intfd);程序调用本函数,通知内核把数据写到硬盘(file)中.比如,…

大家好,又见面了,我是你们的朋友全栈君。

write

ssize_t write(int fd, const void *buf, size_t count);

将数据写到文件中. 注意, 如果文件是保存在硬盘中, write() 函数调用返回之后, 并不表示数据已经写入到硬盘中, 这时如果掉电, 数据可能会丢失.

fsync

int fsync(int fd);

程序调用本函数, 通知内核把数据写到硬盘(file)中. 比如, 你开发一个数据库软件, 就需要这样的函数, 否则掉电或者系统崩溃时便会丢失数据.

如果你的程序不调用 fsync(), Linux 内核也会自动在”合适”的时候将你的数据真正写入到硬盘(类似调用 fsync), 最长的延时默认是 30 秒.

阻塞 

阻塞是 IO 的精华所在, 不管是文件 IO 还是网络 IO, 只有真正了理解了 IO 阻塞, 才能做出所谓在高并发高性能软件(服务器).

当 fsync() 和 write() 同一个 fd 时, write() 必然阻塞. 当系统 IO 非常繁忙时, fsync() 可能会阻塞, 即使系统 IO 不繁忙, fsync() 也会因为数据量大而慢.

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138474.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • springboot集成Thymeleaf(二)「建议收藏」

    springboot集成Thymeleaf(二)「建议收藏」一、基本语法使用1、传递对象:@Controllerpublic class MyController1 { @Autowired private HeroService heroService; @RequestMapping(“/hello”) public String hello(Model model) { …

    2022年6月13日
    33
  • html幻灯片图片切换效果代码,javascript实现图片切换的幻灯片效果源代码[通俗易懂]

    html幻灯片图片切换效果代码,javascript实现图片切换的幻灯片效果源代码[通俗易懂]网页上有许多图片切换的幻灯片效果,它们大多用flash实现,那javascript能不能实现他们呢,当然可以,我自己写了一个,和大家一同分享废话少说,看代码sx.activex.imagefade={init:function(imga,fadeint,fadeoutt){varti=newArray();for(vari=0;iti[i]=newImage();ti[i].src=img…

    2022年7月13日
    17
  • JS图片水印(水印图片)

    attendanceClick(userID,headImg,userName,company,scoreNmu){letbase64Image=’assets/imagesaring.png’;letbase64Image1=’assets/imagesaring1.png’;letbase64Image2=’assets/imagesar…

    2022年4月15日
    50
  • 深入理解Java类加载器(1):Java类加载原理解析

    深入理解Java类加载器(1):Java类加载原理解析1      基本信息每个java开发人员对java.lang.ClassNotFoundExcetpion这个异常肯定都不陌生,这背后就涉及到了java技术体系中的类加载。Java的类加载机制是java技术体系中比较核心的部分,虽然和大部分开发人员直接打交道不多,但是对其背后的机理有一定理解有助于排查程序中出现的类加载失败等技术问题,对理解java虚拟机的连接模型和java语言的动态性

    2022年8月11日
    6
  • 【插件】推荐两个谷歌浏览器的插件[通俗易懂]

    昨天加班到很晚,遇到一个很奇怪的问题,今天才大概定位产生的原因! 很多时候问题很难复现,导致排查问题的效率就不是那么的高效!本来想着写一下这次排查问题的总结,还是后面有时间在写。今天分享两个谷歌浏览器(程序员必备浏览器)的插件,我一直在用,特别好用,所以推荐给你!CSDN中屏蔽百度广告 – Adblock Plus插件我自己有时候会在CSDN写一些技术总结等,每次访问都会百度广告,真是TM…

    2022年2月27日
    166
  • 最小可用maven+springboot 项目(无法使用外网,但是有maven私库情况)

    最小可用maven+springboot 项目(无法使用外网,但是有maven私库情况)用的是ideal,jdk1.8具体操作,参考下面链接。致谢:感谢下面作者的博客https://blog.csdn.net/weixin_43293627/article/details/82877418https://blog.csdn.net/u011948899/article/details/78159027https://www.phpsong.com/3463.ht…

    2022年7月18日
    11

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号