文件操作一:基于C语言的文件操作

在进行C++的编程过程中,经常遇到对文件进行读取操作,所以对文件操作进行整理。

基于C语言的文件操作有两种:流式文件操作和直接I/O文件操作

一、流式文件操作

流式文件操作有一个非常重要的结构FILE,该结构定义在头文件stdio.h中。结构定义如下:

typedef struct { int level; /* fill/empty level of buffer */ unsigned flags; /* File status flags */ char fd; /* File descriptor */ unsigned char hold; /* Ungetc char if no buffer */ int bsize; /* Buffer size */ unsigned char _FAR *buffer; /* Data transfer buffer */ unsigned char _FAR *curp; /* Current active pointer */ unsigned istemp; /* Temporary file indicator */ short token; /* Used for validity checking */ } FILE; /* This is the FILE object */

FILE这个结构包含了文件操作的基本属性,对文件的操作都要通过这个结构的指针来进行。

文件操作常用的函数包括:

      文件的打开操作 fopen 打开一个文件

      文件的关闭操作 fclose 关闭一个文件

      文件的读写操作 fgetc 从文件中读取一个字符
              fputc 写一个字符到文件中去
              fgets 从文件中读取一个字符串
              fputs 写一个字符串到文件中去
              fprintf 往文件中写格式化数据
              fscanf 格式化读取文件中数据
              fread 以二进制形式读取文件中的数据
              fwrite 以二进制形式写数据到文件中去
              getw 以二进制形式读取一个整数
              putw 以二进制形式存贮一个整数

    文件状态检查函数 feof 文件结束
              ferror 文件读/写出错
              clearerr 清除文件错误标志
              ftell 了解文件指针的当前位置

      文件定位函数 rewind 反绕
              fseek 随机定位

详细说明见:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html 点击打开链接

http://www.cnblogs.com/CBDoctor/archive/2012/11/10/2764436.html 点击打开链接  

http://www.cnblogs.com/jianyungsun/archive/2011/02/19/1958587.html点击打开链接 

二、直接I/O文件操作

        这是C提供的另一种文件操作,它是通过直接存/取文件来完成对文件的处理,而上篇所说流式文件操作是通过缓冲区来进行;流式文件操作是围绕一个FILE指 针来进行,而此类文件操作是围绕一个文件的“句柄”来进行,什么是句柄呢?它是一个整数,是系统用来标识一个文件(在WINDOWS中,句柄的概念扩展到 所有设备资源的标识)的唯一的记号。此类文件操作常用的函数如下表,这些函数及其所用的一些符号在io.h和 fcntl.h中定义,在使用时要加入相应的头文件。

常用的函数包括:

open() 打开一个文件并返回它的句柄 
close() 关闭一个句柄 
lseek() 定位到文件的指定位置 
read() 块读文件 
write() 块写文件 
eof() 测试文件是否结束 
filelength() 取得文件长度 
rename() 重命名文件 
chsize() 改变文件长度 

详细说明见:http://www.cnblogs.com/CBDoctor/archive/2012/11/10/2764436.html 点击打开链接  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值