Linux C 文件与目录4 将缓冲区数据写入磁盘
将缓冲区数据写入磁盘
所谓缓冲区,是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 将缓冲区数据写入磁盘的更多相关文章
- (五)Linux之文件与目录管理以及文本处理
Linux之文件与目录管理 目录 Linux之文件与目录管理 前言 绝对路径与相对路径说明: 一.目录常用命令 常用处理目录的命令: 切换目录 cd 显示当前路径 pwd 查看目录下文件 ls 创建目 ...
- [转]Linux中文件权限目录权限的意义及权限对文件目录的意义
转自:http://www.jb51.net/article/77458.htm linux中目录与文件权限的意义 一.文件权限的意义 r:可以读这个文件的具体内容: w:可以编辑这个文件的内容,包括 ...
- Linux之文件、目录
Linux之文件.目录 文件权限 User.Group.Others 在Linux中,任何一个文件都具有这三种身份的个别权限,三者的区别是 User: 指每一个单独的用户,例如member1,memb ...
- Linux命令——文件和目录管理
Linux命令--文件和目录管理 基本命令 命令ls 作用:显示目录下的文件和文件夹 说明:默认显示当前目录,可跟路径参数 参数:-a,显示隐藏目录 参数:-l,显示文件权限 参数:-d,显示文件最后 ...
- tar---打包,解压缩linux的文件和目录
tar命令可以为linux的文件和目录创建档案.利用tar,可以为某一特定文件创建档案(备份文件),也可以在档案中改变文件,或者向档案中加入新的文件.tar最初被用来在磁带上创建档案,现在,用户可以在 ...
- Linux C 文件与目录2 文件的打开与关闭
文件的打开与关闭 open和close 文件的打开指的是从磁盘中找到一个文件,返回一个整形的打开文件顺序的编号.打开的文件处于可读.可写状态.文件的关闭指的是释放打开的文件,是文件处于不可读写的状态. ...
- Java 将数据写入磁盘并读取磁盘上的文件
package test; import java.io.BufferedReader;import java.io.FileReader;import java.io.FileWriter;impo ...
- Linux改变文件或目录的访问权限命令
使用 ll 或 ls -l 指令时 第一列会显示出目录下文件的权限 例如∶ -rw-r-r- 横线代表空许可.r代表只读,w代表写,x代表可执行.注意这里共有10个位置.第一个字符指定了文件类型 ...
- Linux C 文件与目录3 文件读写
文件读写 文件读写是指从文件中读出信息或将信息写入到文件中.Linux文件读取可使用read函数来实现的,文件写入可使用write函数来实现.在进行文件写入的操作时,只是在文件的缓冲区中操作,可能没有 ...
随机推荐
- dreamweaver cs6 的破解方法
dreamweaver cs6 的破解方法,很简单大家照着下面的方法做肯定能破解方法/步骤 安装DreamWeaver cs6 使用amtlib.dll破解下载amtlib.dll文件后,解压后得到 ...
- JS常用的设计模式(13)——组合模式
组合模式又叫部分-整体模式,它将所有对象组合成树形结构.使得用户只需要操作最上层的接口,就可以对所有成员做相同的操作. 一个再好不过的例子就是jquery对象,大家都知道1个jquery对象其实是一组 ...
- iTunes - Forensic guys' best friend
What chances do you think to acquire suspect's data from his/her iDevice? If suspects also use iTune ...
- new_things
'NapCat' in AppStore for reading codes from github. and the ----minibufexpl | + nerd ...
- .NET验证码控件(美观 易用)
新建一般处理程序:veify.ashx <%@ WebHandler Language="C#" Class="verify" %> using S ...
- Aspose.cell.dll的使用,导excel表
using System; using System.Web; using EF; using Newtonsoft.Json; using System.Collections.Generic; u ...
- 整合jQuery和Prototype遇到的问题.
由于项目要在旧的服务器上面运行,而旧的服务器底层用了Prototype,所以需要解决jQuery和Prototype冲突的问题. 一.$符号冲突问题 这个还是很好解决的. jQuery.noConfl ...
- NSBundle UIImageView &UIButton
1.NSBundle 1> 一个NSBundle代表一个文件夹,利用NSBundle能访问对应的文件夹 2> 利用mainBundle就可以访问软件资源包中的任何资源 3> 模拟器应 ...
- Knockout.Js官网学习(style绑定、attr绑定)
Style绑定 style绑定是添加或删除一个或多个DOM元素上的style值.比如当数字变成负数时高亮显示,或者根据数字显示对应宽度的Bar.(注:如果你不是应用style值而是应用CSS clas ...
- HBase从hdfs导入数据
需求:将HDFS上的文件中的数据导入到hbase中 实现上面的需求也有两种办法,一种是自定义mr,一种是使用hbase提供好的import工具 一.hdfs中的数据是这样的 每一行的数据是这样的id ...