C文件操作

1,概论

程序运行时,程序本身和数据一般都存放在内存中,程序运行结束后,存放在内存中的数据会被释放,如果长期保存程序运行所需的原始数据,或程序产生的结果数据,就必须以文件的形式存储到外部存储介质上.

2,C语言文件概述

1,文件与文件名
  文件是指存放在外部存储介质上的数据集合.为标识一个文件,需要给每个文件定一个文件名,文件名一般格式,主文件名.[扩展名]
2,文件分类
  可以从不同的角度对文件进行分类,
根据文件内容,可分为程序文件与数据文件,
程序文件又可以分为源文件,目标文件,可执行文件.
3,根据文件的存储形式:分为ascii和二进制文件.
ascii码文件的每一个字节存储一个字符,便于对对字符进行处理,一般占用存储空间较多,而且需花费转换时间[ascii与二进制间互为转换]
二进制文件,是把内存中的数据,原样输出到磁盘文件中,可以节省磁盘存储空间和ascii和二进制间互为转换时间.二进制文件中一个字节并对应一个字符,不能直接输出字符形式,不便于维护阅读.

3,文件读写,

读文件是指,将磁盘文件中的数据传送到内存的操作.
写文件是指,将计算机内存中的数据向磁盘文件中传.

构成文件的基本单元与流式文件
C语言将文件看作是由一个个字符[ascii码文件],或字节组成的,将这种文件称作流式文件,
在高级语言中组成文件的基本单位是记录,对文件操作的基本单位也是记录.

4,文件类型

每个被使用的文件都在内存中开辟一个区
用来存放文件的相关信息,(文件名,状态,位置),这些信息保存在一个结构体类型变量中,FILE,结构体类型由系统定义;
typedef struct
{
  int _fd; //文件描述符
  int _cleft; //缓冲区中剩下的字符
  int _mode; //文件操作
  char *_nexttc; //下一个字符位置
  char *_buff;  //文件缓冲区位置
} FILE;

5,文件操作类型,结构体类型

定义FILE类型指针变量
FILE指针类型变量定义
  FILE *指针变量名;
eg:FILE *fp;
fp是一个指向FILE结构体的指针变量;
可以使fp指向某个文件的结构体变量,从而通过该结构体变量中的文件信息来访问文件.

C文件操作

6,文件打开函数

fopen(),调用方式
FILE *fp;
fp=fopen(文件名,文件使用方式);
^fp-->用户自定义的文件类型指针变量;
文件的使用方式,具有特定含义的符合
fopen函数功能:以指定的方式打开指定的文件,若操作成功,则返回一个指向该文件的指针,若打开文件时错误,返回NULL;
  例如:
FILE *fp;
fp=fopen("/C/005/ruiy.dat","rw+");

7,文件的使用方式;

文件的操作模式基本字符[单独使用是对文本文件];
r -->仅为读二打开,(只读文件)
w-->仅为写打开, (建立新文件)
a -->仅为添加而打开, (写旧文件)
【注意】前面不是说了吗:C把文件看作是有一个ascii字符或一个二进制字符组成的.
2,按二进制格式读写文件,字符方式+b;
b辅助说明,按二进制格式读写文件.
eg:fp=fopen("ruiy.dat","rb");

8,fclose

usage:int fclose(FILE *指针变量名);

功能:关闭文件指针所指向的文件,正常关闭了,函数返回值为0,失败则为非0;

fclose(fp);//关闭文件所指向的文件;

9,文件读写操作

单个字符操作读写函数,

fputc函数

一般调用形式:

fputc(字符常量或变量,文件指针);

功能:把指定字符存入文件指针所指向的文件中;

如果输出失败,则返回一个EOF,(-1);

EOF是在stdio.h头文件中的定义的符合常量,值为-1,

eg:fputc(ch,fp);

其中ch为字符变量,fp为文件指针,

含义,将ch的值输出到ftp所指向的文件中

fgetc函数;

一般调用形式,字符变量=fgetc(文件指针);

功能:从文件指针所指文件中读取一个字符赋给指定的字符变量,当遇到一个文件结束符,返回一个文件结束符标志

eg:ch=fgetc(fp);

C文件操作

上一篇:SQL Server不停机移动镜像数据库方案和应用场景


下一篇:《Groovy极简教程》第4章 Groovy与Java混合编程