当前位置:  技术问答>linux和unix

关于write()和fsync()

    来源: 互联网  发布时间:2015-11-13

    本文导语:  关于linux系统调用write() 调用一次write()完毕,是不是已经写到磁盘上了? 是不是调用一次write(),就是一次写请求,不管写多少个字符进去,调用完都已经通过缓冲区写到磁盘上了? 那么fsync()这个函数是不是指将缓冲...

关于linux系统调用write()
调用一次write()完毕,是不是已经写到磁盘上了?
是不是调用一次write(),就是一次写请求,不管写多少个字符进去,调用完都已经通过缓冲区写到磁盘上了?
那么fsync()这个函数是不是指将缓冲区的写到磁盘上,如果是,write完再fsync是不是多此一举?
我想实现的是可以先创建一个文件,然后写一些东西到该文件的缓冲区,再调用fsync()写入磁盘,请问如何实现?

|
呵呵,当你用write之后,内核就响应write系统调用,然后向高速磁盘缓冲块写入数据,之后,你如果用stat,或者read时,系统首先会在高速缓冲块中去查看相应的数据是否在块中,如果不是,然后再调用磁盘驱动加载磁盘数据到高速缓冲块中,然后再由高速缓冲块中返回你要的数据!!!!!这就是你用stat()输出st_size,就是写入的个数的原因!!!!!
系统会在合适的时机再向真正的硬件写入高速缓冲块中的数据,也可以用fsync强制把高速缓冲块中的相应数据写入磁盘!!!!!!!

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • C++ I/O 成员 write():写字符
  • 真实文件系统中的write和aio_write有什么区别
  • java命名空间java.io类outputstream的类成员方法: write定义及介绍
  • generic_file_aio_write_nolock和generic_file_aio_write什么区别啊?
  • java命名空间java.io类filteroutputstream的类成员方法: write定义及介绍
  • 对同一设备文件操作,write后,能read出刚write的内容,为什么???
  • java命名空间java.util.logging类errormanager的类成员方法: write_failure定义及介绍
  • [100分求助]预连接:prelink: Could not write /lib/ld-2.5.so: cannot write data to file
  • java命名空间java.io类pipedoutputstream的类成员方法: write定义及介绍
  • linux和windows串口问题!?linux向windows端发送,第一次write正常,继续write,windows接收到的就变成乱码了,这是什么原因??????
  • java命名空间java.io接口objectoutput的类成员方法: write定义及介绍
  • 关于socket中write()函数的问题
  • java命名空间java.io类randomaccessfile的类成员方法: write定义及介绍
  • Stream.Write 与 StreamWriter.Write 的不同
  • java命名空间java.io类stringwriter的类成员方法: write定义及介绍
  • 关于write函数的第三个参数的传递
  • java命名空间java.io类printwriter的类成员方法: write定义及介绍
  • 请教:socket编程中send和write的区别
  • java命名空间java.io类objectoutputstream的类成员方法: write定义及介绍
  • response.getWriter().write()向前台打印信息乱码问题解决
  • java命名空间java.io类chararraywriter的类成员方法: write定义及介绍
  • read write ??????????????????


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3