在使用语言编写服务的时候不乏会遇到需要对文件进行操作的场景,Linux内核是用C语言写的,了解Linux之前先熟悉一下C语言文件操作接口,方便对比。
C语言文件操作接口
C语言文件描述
#ifndef _FILE_DEFINED |
|
struct _iobuf {
|
|
char *_ptr; //文件输入的下一个位置 |
|
int _cnt; //当前缓冲区的相对位置 |
|
char *_base; //指基础位置(即是文件的起始位置) |
|
int _flag; //文件标志 |
|
int _file; //文件描述符id |
|
int _charbuf; //检查缓冲区状况,如果无缓冲区则不读取 |
|
int _bufsiz; //文件缓冲区大小 |
|
char *_tmpfname; //临时文件名 |
|
}; |
|
typedef struct _iobuf FILE; |
|
#define _FILE_DEFINED |
|
#endif |
C语言对文件操作需要的数据都存在这样的数据结构里,C语言对文件操作时,用一个数据结构唯一标识一个文件流
fopen()
FILE* fopen(const char *path, const char *mode); |
返回值为文件流结构体指针,当打开失败时返回NULL指针。
对文件操作前需先打开文件,打开文件使用接口fopen()。
参数:
path: 文件路径,可以是相对路径也可以是绝对路径(默认为进程打开时路径)
mode: 打开方式
| 模式 | 含义 | 文件不存在时 |
|---|---|---|
| r | 只读 | 报错 |
| w | 只写 | 创建文件 |
| a | 追加只写 | 创建文件 |
| rb | 二进制只读 | 报错 |
| wb | 二进制只写 | 创建文件 |

本文介绍了Linux下C语言文件操作接口,包括fopen(), fclose(), fwrite(), fread()等,以及系统文件操作接口如open(), write(), read(), close()。文章详细阐述了两种接口的区别和联系,强调了C语言接口的跨平台优势。"
87541365,8231839,双向循环链表的插入操作,"['数据结构', '链表', '算法', '递归', '数据操作']
最低0.47元/天 解锁文章
1274

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



