文件描述符是唯一标识计算机操作系统中打开的文件的数字。它描述了一个数据资源,以及如何访问该资源。
当程序请求打开文件或其他数据资源(如网络套接字)时,内核进行如下操作:
1.授予访问权限
2.在全局文件表中创建一个条目
3.向软件提供该条目的位置
描述符由一个唯一的非负整数标识,例如0、12或567。对于系统上每个打开的文件,至少存在一个文件描述符。在Windows操作系统中,文件描述符又被称为文件句柄。
一 概述
当进程成功要求打开一个文件时,内核会返回一个指向全局文件表中某一条目的文件描述符。这个文件条目包含文件的索引节点,字节偏移量,访问限制等信息。
二 Stdin,Stdout, and stderr
在类Unix操作系统中,描述符0是标准输入stdin,描述符1是标准输出stdout,描述符2是标准错误stderr。
三 重定向文件描述符
用bash脚本可以直接访问文件描述符。比如,当使用find命令时,输出成功会到描述符1,错误信息会到描述符2
find / -name '*games*'