Linux之IO重定向

我们知道,当用open文件io打开文件时,系统会返回一个文件描述符fd,随后fd作为文件io操作的句柄对所有文件进行操作。实际上文件描述符表包含两个内容,一个是文件描述符,一个就是驱动程序表号,通过驱动程序表号找到相应系统驱动表的驱动接口。比如标准输入默认文件描述符为0,通过相应驱动程序表号比如flag可以找到系统驱动表的驱动接口gets、scanf等标准输入,其挂载的默认文件为键盘,因此实现了键盘输入对应标准输入接口。而重定向的含义是将当前文件的文件描述符对应上其他文件驱动程序表号的过程,比如文件tmp的文件描述符为3,将3指向驱动程序表号的flag,那么标准输入接口挂载的默认文件不再是键盘而是tmp文件。

驱动程序表号

Value(底层驱动xx_open()返回值)

 

 

 

 

 

 

2

 

 

 

 

 

 

 

总结:重定向的含义即改变当前文件描述符对应的驱动程序表号,从而实现调用另外文件对应的驱动接口的目的。

猜你喜欢

转载自blog.csdn.net/u011116085/article/details/89089258
今日推荐