1.IO:
input output linux下读写文件的方式
2.流:
stream 标准io的操作对象 是描述文件信息的结构体
3.基本操作
打开-读写-关闭
3.1 文件打开
#include <stdio.h>
FILE *fopen(const char *path, const char *mode); // const char* 保护实参不被修改
//*path= //错 *path是常量 不能放到赋值符号左侧
功能:打开或创建并打开 文件
参数:
path 文件名(包含路径:绝对路径或者相对路径)
mode:文件打开的方式
r:以只读方式打开 文件必须已存在
r+:以读写方式打开 文件必须已存在
w:以只写方式打开 如果不存在 则创建并打开 存在则清空并打开
w+:以读写方式打开 如果不存在 则创建并打开 存在则清空并打开
a:以追加写的方式打开 如果文件不存在 则创建并打开
a+:以追加读写的方式打开 如果文件不存在 则创建并打开
返回值:成功返回FILE* 类型指针(文件流指针) ,失败返回NULL
3.2 错误提示
#include <stdio.h>
void perror(const char *s);
功能:返回上一个函数的错误信息
参数:实际错误信息
3.3 标准文件
程序运行时 系统自动打开3个流
标准输入 从标准输入取数据 默认是键盘 stdin --FILE * stdin
标准输出 向标准输出设备输出 默认是显示器 stdout ---FILE *stdout
标准错误输出 向标准错误输出设备输出 默认是显示器 stderr --FILE *stderr
3.4 按行读取
#include<stdio.h>
char *fgets(char *s, int size, FILE *stream);
功能:从文件中读取一行
参数
s:读取的数据存放的位置
size:最多读多大 实际最多能读到的有效字符 size-1个字节
stream:从stream文件中读取一行
如果size<行字节数 实际读取有效字符size-1 剩下的字符需要循环读取 直到’\n’
如果size>行字节数 实际读到一行(遇到’\n’停止)
返回值:
成功 返回读到的数据
失败或者到文件结尾 返回NULL
3.5 地址上数据清零
#include <strings.h>
void bzero(void *s, size_t n);
功能:将地址s的前n个字节清零
3.6 向文件中写入一行数据
#include<stdio.h>
int fputs(const char *s, FILE *stream);
功能:向文件中写入一行
参数:
s:存放要写入文件的字符串
stream:要写入的件
返回值:
成功:返回非负数
失败:返回EOF //EOF是文件结束标志 #define EOF -1 \0
3.7 关闭文件
#include <stdio.h>
int fclose(FILE *fp);// fclose(fp);
功能:关闭文件