在《嗨翻C语言》的学习中,了解到“文件描述符”的概念。有一点点傻傻分不清楚文件描述符表中两列的区别,每每涉及重定向时觉得混乱。
文件描述符
参考 文件描述符-维基百科 中描述:
在 UNIX/Linux 平台上,对于控制台(Console)的标准输入,标准输出,标准错误输出也对应了三个文件描述符。它们分别是 0,1,2。在实际编程中,如果要操作这三个文件描述符时,建议使用
<unistd.h>头文件中定义的三个宏来表示:STDIN_FILENO,STDOUT_FILENO以及STDERR_FILENO。
对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时,用 open 或 create 返回的文件描述符标识该文件,将其作为参数传送给 read 或 write。
