嵌入式开发学习日志(linux系统编程--文件读写函数)Day24
一、系统编程
标准oi 【输入输出】 stdio.h
头文件 :stdio.h ==>标准输入输出头文件;/usr/include/stdio.h
二、文件操作
1、关于文件操作的步骤
(1)打开文件;
(2)io操作,读写操作;
(3)关闭文件;
注:FILE *是一个结构体,包含文件信息;
文件读写的位置相同,都在文件流指针指向的位置;
2、打开文件【fopen( )】
FILE *fopen(const char *pathname, const char *mode);
【const char *pathname】:想要打开的文件名;
【const char *mode】:打开文件的模式;
【r】:打开只读,文件流指针在最开始;
【r+】:打开读写,文件流指针在最开始;
【r】和【r+】目标文件必须存在;
【w】:将原来文件清空或创建这个文件,读,文件流指针在最开始;
【w+】:将原来文件清空或创建这个文件,读写,文件流指针在最开始;
【w】和【w+】可以进行创建文件;
3、单个字符写操作(一次只能写一个字符)
int fputc(int c, FILE *stream);
【int c】:要写入的字符;
【FILE *stream】:操作的文件名;
eg:
4、文件的读取
int fgetc(FILE *stream);
【FILE *stream】:操作的文件名;
注意:文件内容会读取完;
文件内容读取完返回的为【EOF】;
对比两个文件:【vimdiff 文件名1 文件名2】
【op -c】可以查看文档以字符形式打印;
5、文件的关闭
int fclose(FILE *stream);
【FILE *stream】:操作的文件名;
【cat 文件名】可以查看文件中的内容;
eg:
eg:(1)用fgetc和fputc实行复制粘贴
通用写法:
三、fgets/fputs
1、fgets 读文件————一次一行
原型:char *fgets(char *s, int size, FILE *stream);
【char *s】:将读取到的数据存放在数组中;大小建议开1~4k
【int size】:所需要读取的大小;
【FILE *stream】:操作的文件名;
如果大小不够,则存放的数据为sizeof - 1个;
返回值:成功,返回值指向有效数据的首地址,一般等于s的地址;
失败或者处于文件末尾返回NULL;
eg:
2、fputs写入文件————一次一行
原型: int fputs(const char *s, FILE *stream);
【const char *s】:表示写入的内容;
【FILE *stream】:操作的文件名;
eg:
eg:(1)读取指定的文件;
(2)将一个文件拷贝到另一个文件中;
通用写法: