基础IO
I/O:input & output,是一切实现的基础。
- stdio标准IO
- sysio系统调用IO,又叫文件IO
标准IO
fopen
fopen()函数——打开文件
FILE* fopen(const char *path, const char *mode)
- 返回值:
- 文件成功打开后,指向该流的文件指针就会被返回
- 文件打开失败,则返回NULL,并把错误码存在erron中
- FILE:文件流指针类型
- path:要打开的文件路径及文件名,如果不带路径,则在当前的目录下寻找
- mode:代表文件流形式
- r:以读方式打开,如果当前打开的文件不存在,则报错
- r+:以读写方式打开,如果当前打开的文件不存在,则报错
- w:以写的方式打开
- 如果文件不存在,则创建该文件
- 如果当前文件存在,则将当前文件截断(文件长度清零,即该文件内容会消失),文件流指针指向文件头部
- w+:以读写的方式打开
- 如果文件不存在,则创建该文件
- 如果当前文件存在,则将当前文件截断(文件长度清零,即该文件内容会消失),文件流指针指向文件头部
- a:以追加方式打开,只写文件,并不能读文件
- 如果文件不存在则创建该文件
- 如果当前文件存在,写入的数据会被追加到文件尾,即文件原先的内容会被保留
- a+:以追加方式打开,可读写文件
- 如果文件不存在则创建
- 如果当前文件存在,写入的数据会被追加到文件尾,即文件原先的内容会被保留
fread
fread()函数——从文件流读取数据
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
- ptr:将fread读到的内容保存在ptr里面
- size:块的大小,单位是字节
- nmemd:块的个数
- size*nmemd==总的字节大小
- stream:文件流指针,从哪里读
- 返回值:返回成功读到的块的个数
- 常用的用法:将块的大小size指定为1,块的个数就是ptr内存空间大小
fwrite
fwrite()函数——将数据写至文件流
size_t fwrite(const void *ptr, size_t size, size_t nmemb,FILE *stream);
- ptr:写什么数据,写的内容保存在ptr里面
- size:写数据时块的大小
- nmemd:块的个数,多少字节
- stream:文件流指针,写到哪里去
- 返回值:返回成功写入的块个数
- 常用的用法:将块的大小size指定为1,返回值就是成功写入的字节数量
fseek
fseek()函数——移动文件流的读写位置