关于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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 左移(1_右移一位

    左移(1_右移一位今天在书上看到一段代码:http.Server{Addr:"8080"……MaxHeaderBytes:1<<20}知道1<<20是左移的意思,但就是

    2022年8月5日
    3
  • linux之文件操作

    1.文件操作思维导图2.linux系统目录结构及简单说明linux目录图:root启动Linux时使用的一些核心文件。如操作系统内核、引导程序Grub等。home存储普通用户的个人文件

    2021年12月28日
    44
  • 百度推团购导航已失良机,团购搜索正成主流趋势

    百度推团购导航已失良机,团购搜索正成主流趋势

    2021年8月12日
    53
  • 均匀分布的期望和方差公式推导_圆上的均匀分布数学期望

    均匀分布的期望和方差公式推导_圆上的均匀分布数学期望数学正态分布和均匀分布问题。正态分布N(μ,σ^2)期望即μ,方差即σ^2区间[a,b]上均匀分布期望为(a+b)/2,方差为(b-a)^2/12为什么计算均匀分布的方差要除以12?注:均匀分布U(a,b)的方差Var(X)=(b-a)^2/12随机变量:U(a,b)X的概率密度函数:f(x)=1/(b-a)a其它x,f(x)=0;X的平均值:E(X)=∫(b,a)xf(x)dx=∫(b,…

    2022年9月18日
    5
  • C语言十字相乘法_三次方十字相乘法

    C语言十字相乘法_三次方十字相乘法视频地址十字相乘法视频教程//初学C语言第2天,2小时写了一个简单的穷举法。#include<stdio.h>#include<math.h>intmain(){ intX=50;//自然数 floata,b,c; a=2;//二次项系数 b=5;//一次项系数 c=-3;//常数项 floata1,a2,a3,a4,…

    2025年6月3日
    4
  • nginx面试常见问题_面试官应该问哪些问题

    nginx面试常见问题_面试官应该问哪些问题1.什么是Nginx?Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器目前使用的最多的web服务器或者代理服务器,像淘宝、新浪、网易、迅雷等都在使用2.为什么要用Nginx?优点:*跨平台、配置简单*非阻塞、高并发连接:处理2-3万并发连接数,官方…

    2022年8月27日
    7

发表回复

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

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