1. 对于前置知识点的回忆,无缝进行衔接:
在上一篇文章《C++与Linux基础》文件篇中,我们提到了以下知识点:
- Linux 一切皆是文件。(只是简单的理解,并没有深入)
- C 语言提供的
printf,fprintf,fgets,fread,fwrite,这几种接口 - C 语言提供的几种打开文件的模式:只读,只写,追加等等
这里我们将持续深入文件操作结合 Linux 系统来完成本篇文章,当你读完本篇文章,你会知道以下几点:
- open 函数的参数解析(位图);
- 什么是 fd(文件描述符)
- 如何使用 write/read/close
- fd 的分配规则(重定向的基础)

2. Linux 最底层的文件打开方式:open()
open 函数是 Linux 系统中用于打开或创建文件的系统调用接口(System Call),它比 C 标准库的 fopen 更底层。 所需头文件如下:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
函数原型如下: 对于已经创建好的文件:
int open(const char *pathname, int flags);
创建新文件(需要指定权限):
int open(const char *pathname, int flags, mode_t mode);
2-1 参数 const char *pathname 解释:
这里的路径名称很简单:我们给出指定的文件名,如果前面不加路径,就是默认在进程所处文件下进行创建:
目标文件的路径(绝对路径或相对路径),例如 'data.txt' 或 '/home/user/log.txt'。







