标准C函数中关于文件IO的函数详解

来源:互联网 发布:哪款浏览器最兼容js 编辑:程序博客网 时间:2024/05/03 01:08

 文件IO只有如下几个函数,当然主要参考MSDN,因为英文新手看起来比较那个,也为了自己久不用陌生备查(最近可能较大精力投入到网站开发中),于是有此文……

 

打开文件函数:fopen

函数原型:FILE *fopen( const char *filename, const char *mode );

 

需要头文件:<stdio.h> 兼容性:ANSI, Win 95, Win NT

 

相关库:

LIBC.LIB 单线程静态库,零售版?(retail version)

LIBCMT.LIB 多线程静态库,零售版?(retail version)

MSVCRT.LIB MSVCRT.dll的静态库,零售版?(retail version)

 

返回值:

操作成功,返回文件[FILE结构的指针],否则返回NULL指针。

 

参数说明:

 

filename 文件名

mode 打开方式,如rb表示只读二进制,详见MSDN

 

指针定位函数:fseek

 

函数原型:int fseek( FILE *stream, long offset, int origin );

 

文件头及相关库同fopen

 

返回值:成功返回0,否则返回非0值,比较特殊。

 

stream是已打开FILE结构的指针,offset是偏移量,origin是起始位置(SEEK_SET=0,SEEK_CUR=1,SEEK_END=2)

 

可以这么理解,如文件内容是:0123456789,fseek(fp, 0, SEEK_SET);则指针在0的前面,读一个字节将得到字符0,

fseek(fp, -1, SEEK_END); 指针在9前面,读一个字节将得到字符9……

 

数据读取函数:fread相对简单,可参考http://baike.baidu.com/view/656689.htm

 

数据写入函数:fwrite也较简单,可参考http://baike.baidu.com/view/656700.html

主要是,如果打开方式r+或w+(当然rb+等也是),函数将从当前指针开始写入,如果是a+,那么函数将从末尾开始,指针将被忽略……

原创粉丝点击