文件描述符与输入输出重定向

文件描述符(file descriptor)

    每个进程都有打开的一组文件,这些打开的文件保存在一个数组中。文件描述符即保存在此数组的索引中。


最低可用文件描述符(lowest_available_fd)

    当打开一个文件时,内核为此文件安排的文件描述符总是此数组中最低可用文件描述符。
    文件描述符通过exec调用传递,且不会被改变


标准输入文件描述符是0  标准输出文件描述符是 1  标准输出文件描述符是 2     
unix假设文件描述符0、1、2都已经被打开,并且都连接到终端设备上。可以分别进行读写操作。
大多数程序将结果输出到文件描述符1,将错误消息输出到文件描述符2。

若是想修改程序的输入输出就必须修改相应的文件描述符。将0、1、2绑定到不同的文件即可实现重定向。

程序默认是从标准输入读取数据,将文件描述符0绑定到一个文件。即可实现从文件读取数据。
实际上,进程并不是从文件读取数据,而是从文件描述符读取数据
如果文件描述符0定位到一个文件,那么这个文件就是标准输入的源。

posted @ 2009-11-09 16:22  jackyxm  阅读(1006)  评论(0)    收藏  举报