Article · 2026-09-18

为什么 Linux open() 返回的是一个 int

从文件描述符、进程文件表和系统调用理解 open/read 的接口。

LinuxSystem CallCS

先记结论

open() 返回的整数不是文件内容的地址,而是当前进程用于引用已打开文件对象的文件描述符。

后续整理方向

把 open → fd → read → kernel file object 的关系画成一张图,再补充标准输入 0、标准输出 1、标准错误 2。