您的位置:首页 > 运维架构 > Linux

文件描述符

2016-07-01 19:57 363 查看
文件描述符了:每个进程在 Linux 内核中都有一个 task_struct 结构体来维护进程相关的信息,称为进程描述符(Process Descriptor),而在操作系统理论中称为进程控制块(PCB,Process Control Block)。

task_struct 中有一个指针指向files_struct结构体,称为文件描述符表,其中每个表项包含一个指向已打开的文件的指针。用户程序不能直接访问内核中的文件描述符表,而只能使用文件描述符表的索引(即0、1、2、3这些数字),这些索引就称为文件描述符(File
Descriptor),用int型变量保存。

程序启动时会自动打开三个文件:标准输入、标准输出和标准错误输出。在C标准库中分别用FILE *指针 stdin、stdout 和 stderr 表示。这三个文件的描述符分别是0、1、2,保存在相应的FILE结构体中。

<span style="font-size:18px;">#define STDIN_FILENO 0
#define STDOUT_FILENO 1
#define STDERR_FILENO 2</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux pcb 文件描述符