Linux下一切皆文件,文件大致可分为两类:标准文件和普通文件。标准文件指的是标准输出文件(主要指显示器)和标准输入文件(主要指键盘);普通文件指的是磁盘文件。
标准设备文件中的标准输入文件的文件指针是 stdin,文件号是0;
标准输出文件的文件指针是stdout,文件号是1;
标准错误文件的文件指针是stderr,文件号是2;
所以在正常情况下文件号0,1,2用户是不能用的,用户能用的文件号是从3开始的。若是在特殊情况下需要用到0,1,2,则需要进行宏定义:
0:STDIN_FILENO
1: STDOUT_FILENO
2 STDERR_FILENO
下面介绍几个常用文件操作函数(标准文件函数):
A:打开文件 fopen
定义: FILE *fopen(“文件名或文件路径”,“文件的打开方式”);
可以将其打开的结果赋给一个指针,将其结果返回,以了解文件的打开情况。若打开失败则返回值是NULL,若打开成功则返回值一般是大于3。
例如:
若成功输出结果是:
如果在fopen命令中输入的文件不存在的话fopen就会返回NULL,打开文件失败,且会出现 “段错误” 的提示。
例如:
文件夹里,没有c2.txt 的文件:
输出结果是:
其中打开文本文件方式主要有6种:
(1)“r” 以只读方式打开已经存在的文件(必须为已经存在的文件,否则会出错);
(2)“w” 以只写方式打开文件,若文件不存在则自动创建新文件,若文件已存在则覆盖原文件里的内容;
(3)“a” 以只写追加方式打开文件,若文件不存在则自动创建新文件,若文件已存在则在原文件结尾追加内容;
(4)“r+” 以读写方式打开已经存在的文件(必须为已经存在的文件,否则会出错);
(5)“w+” 以读写方式打开文件,若文件不存在则自动创建新文件,若文件已存在则覆盖原文件里的内容;
(6)“a+” 以读写追加方式打开文件,若文件不存在则自动创建新文件,若文件已存在则在原文件结尾追加内容;
****若要打开二进制文件可以在打开文本文件方式的命令基础上加b, 例如“rb” “rb+” “ab" “ab+”。意义和打开文本文件相同。
例如:
输入结果是:
B.文件关闭: fclose
定义:int fclose(FILE *fp);
当关闭成功时返回值是0;失败为非0;
总结:fopen 命令其实是将磁盘文件里的指定文件放到输入缓冲区,以待系统进行处理;
而fclose命令则是将处理后的内容从输出缓区放到磁盘文件里存储起来。