文件操作函数及fopen和open的区别
文章目录
一、文件操作
1.1 打开文件 fopen
#include <stdio.h>
FILE* fopen( const char *filename, const char *mode );
返回值: 返回一个 FILE* 的文件流指针。
filename: 需要打开的文件,需要加上文件的路径,可以是相对路径,也可是绝对路径。
mode: 以何种方式打开文件。
| r | 以读模式打开文件,如果文件不存在则报错 |
|---|---|
| r+ | 以读写模式打开文件,如果文件不存在则报错 |
| w | 以写模式打开文件。如果文件不存在则创建文件; 如果文件存在则清空文件类容(截断文件),文件流指针指向文件的头部 |
| w+ | 以读写模式打开文件。如果文件不存在则创建文件; 如何文件存在则清空文件类容(截断文件),文件流指针指向文件的头部 |
| a | 以追加模式打开文件。如果文件不存在则创建文件; 如果文件存在,不能读文件,只能在文件末尾追加写文件 |
| a+ | 以追加模式打开文件。如果文件不存在则创建文件; 如果文件存在,支持读文件,且在文件末尾追加写文件 |
1.2 关闭文件 fclose
#include <stdio.h>
int fclose( FILE *stream );
1.3 写文件 fwrite
#include <stdio.h>
size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
返回值: 返回成功写入块的个数。
buffer: 要往 stream 文件流指针所指的文件中写入的内容。
size: 块的大小,单位字节(衡量一次可以写入几个字节)。
count: 块的个数,size * count (衡量总共写入了多少个字节)。
stream: 文件流指针,往哪里写。
通常:将 size = 1,每写一块就等于写入 1 个字节,这样要往文件中写入多少字节,就将块的大小 count 设置为多少。
1.4 读文件 fread
#include <stdio.h>
size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
返回值: 返回成功读到的块的个数。(实际)
buffer: 将读到的内容保存在 buffer 中。
size: 块的大小,单位字节(衡量一次可以读到几个字节)。
count: 块的个数,size * count (衡量总共读到的多少个字节)。(期望)
stream: 文件流指针,从哪里读取文件。
通常:将 size = 1,每读一块就等于读到 1 个字节,这样要从文件中读多少字节,就将块的大小 count 设置为多少。

本文详细介绍了Linux中文件操作的函数,包括fopen、fwrite、fread、fclose、fseek以及对应的系统调用open、write、read、close、lseek的使用方法和区别,强调了文件流指针管理和文件描述符的重要性。

2424

被折叠的 条评论
为什么被折叠?



