将缓冲区数据写入磁盘

  所谓缓冲区,是Linux系统对文件的一种处理方式。在对文件进行写操作时,并没有立即把数据写入到磁盘,而是把数据写入到缓冲区。如果需要把数据立即写入到磁盘,可以使用sync函数。用这个函数强制写入缓冲区数据的的好处是保证数据同步


  函数原型:

    int sync(void);

这个函数会对当前程序打开的所有文件进行处理,将缓冲区的内容写入到文件。函数没有参数,返回值为0。这个函数一般不会产生错误。

  头文件:

  #include(unistd.h)

用法:

fd = open(path , O_WRONLY|O_CREAT|O_TRUNC , 0766);
if(fd != -1)
{
printf("opened file %s .\n" , path);
}
else
{
printf("can't open file %s.\n" , path);
printf("errno: %d\n" , errno);
printf("ERR : %s\n" , strerror(errno));
}
write(fd , s , sizeof(s));

sync();                               //将缓冲区的数据写入磁盘

printf("sync function done.\n");
close(fd);


fsync

函数fsync的作用是将缓冲区的数据写入到磁盘。与sync不同的是,这个函数可以指定打开文件的编号,执行以后会返回一个值。

函数原型:

int fsync(int fd);

  头文件:

  #include(unistd.h)

返回值:如果函数执行成功则返回0,否则返回-1。

fd = open(path , O_WRONLY|O_CREAT|O_TRUNC , 0766);
if(fd != -1)
{
  printf("opened file %s .\n" , path);
}
else
{
  printf("can't open file %s.\n" , path);
  printf("errno: %d\n" , errno);
  printf("ERR : %s\n" , strerror(errno));
}
  write(fd , s , sizeof(s));

  if(fsync(fd) == 0)

  {

    printf("fsync function done.\n");

  }

  else

  {

    printf("fsync function failed.\n");

  }
close(fd);

Linux C 文件与目录4 将缓冲区数据写入磁盘的更多相关文章

  1. (五)Linux之文件与目录管理以及文本处理

    Linux之文件与目录管理 目录 Linux之文件与目录管理 前言 绝对路径与相对路径说明: 一.目录常用命令 常用处理目录的命令: 切换目录 cd 显示当前路径 pwd 查看目录下文件 ls 创建目 ...

  2. [转]Linux中文件权限目录权限的意义及权限对文件目录的意义

    转自:http://www.jb51.net/article/77458.htm linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括 ...

  3. Linux之文件、目录

    Linux之文件.目录 文件权限 User.Group.Others 在Linux中,任何一个文件都具有这三种身份的个别权限,三者的区别是 User: 指每一个单独的用户,例如member1,memb ...

  4. Linux命令——文件和目录管理

    Linux命令--文件和目录管理 基本命令 命令ls 作用:显示目录下的文件和文件夹 说明:默认显示当前目录,可跟路径参数 参数:-a,显示隐藏目录 参数:-l,显示文件权限 参数:-d,显示文件最后 ...

  5. tar---打包,解压缩linux的文件和目录

    tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在 ...

  6. Linux C 文件与目录2 文件的打开与关闭

    文件的打开与关闭 open和close 文件的打开指的是从磁盘中找到一个文件,返回一个整形的打开文件顺序的编号.打开的文件处于可读.可写状态.文件的关闭指的是释放打开的文件,是文件处于不可读写的状态. ...

  7. Java 将数据写入磁盘并读取磁盘上的文件

    package test; import java.io.BufferedReader;import java.io.FileReader;import java.io.FileWriter;impo ...

  8. Linux改变文件或目录的访问权限命令

    使用  ll  或  ls -l 指令时 第一列会显示出目录下文件的权限 例如∶ -rw-r-r- 横线代表空许可.r代表只读,w代表写,x代表可执行.注意这里共有10个位置.第一个字符指定了文件类型 ...

  9. Linux C 文件与目录3 文件读写

    文件读写 文件读写是指从文件中读出信息或将信息写入到文件中.Linux文件读取可使用read函数来实现的,文件写入可使用write函数来实现.在进行文件写入的操作时,只是在文件的缓冲区中操作,可能没有 ...

随机推荐

  1. dreamweaver cs6 的破解方法

    dreamweaver cs6 的破解方法,很简单大家照着下面的方法做肯定能破解方法/步骤 安装DreamWeaver cs6 使用amtlib.dll破解下载amtlib.dll文件后,解压后得到 ...

  2. JS常用的设计模式(13)——组合模式

    组合模式又叫部分-整体模式,它将所有对象组合成树形结构.使得用户只需要操作最上层的接口,就可以对所有成员做相同的操作. 一个再好不过的例子就是jquery对象,大家都知道1个jquery对象其实是一组 ...

  3. iTunes - Forensic guys' best friend

    What chances do you think to acquire suspect's data from his/her iDevice? If suspects also use iTune ...

  4. new_things

    'NapCat' in AppStore for reading codes from github. and the ----minibufexpl                |  + nerd ...

  5. .NET验证码控件(美观 易用)

    新建一般处理程序:veify.ashx <%@ WebHandler Language="C#" Class="verify" %> using S ...

  6. Aspose.cell.dll的使用,导excel表

    using System; using System.Web; using EF; using Newtonsoft.Json; using System.Collections.Generic; u ...

  7. 整合jQuery和Prototype遇到的问题.

    由于项目要在旧的服务器上面运行,而旧的服务器底层用了Prototype,所以需要解决jQuery和Prototype冲突的问题. 一.$符号冲突问题 这个还是很好解决的. jQuery.noConfl ...

  8. NSBundle UIImageView &UIButton

    1.NSBundle 1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹 2> 利用mainBundle就可以访问软件资源包中的任何资源 3> 模拟器应 ...

  9. Knockout.Js官网学习(style绑定、attr绑定)

    Style绑定 style绑定是添加或删除一个或多个DOM元素上的style值.比如当数字变成负数时高亮显示,或者根据数字显示对应宽度的Bar.(注:如果你不是应用style值而是应用CSS clas ...

  10. HBase从hdfs导入数据

    需求:将HDFS上的文件中的数据导入到hbase中 实现上面的需求也有两种办法,一种是自定义mr,一种是使用hbase提供好的import工具 一.hdfs中的数据是这样的 每一行的数据是这样的id ...