谈谈自己对文件描述符的理解
2014-05-18 15:36
330 查看
文件描述符其实和C语言的的FILE*差不多,就是用一个整数来表述一个打开的文件。而C语言中使用的是指针来描述的。下面的例子是摘自上一遍转载的文章中的:
让我们来分析一下作者的用意:
在没有执行任何命令之前,文件描述符0,1,2会被自动的与屏幕相关联,可以用下图表示,我们可以简单的把0,1,2理解成指针,现在都指向屏幕
图1
执行
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | [chengmo@centos5 shell]$ exec 6>&1 #将标准输出与fd 6绑定 [chengmo@centos5 shell]$ exec 1>suc.txt #将接下来所有命令标准输出,绑定到suc.txt文件(输出到该文件) [chengmo@centos5 shell]$ ls -al #执行命令,发现什么都不返回了,因为标准输出已经输出到suc.txt文件了 [chengmo@centos5 shell]$ exec 1>&6 #恢复标准输出 [chengmo@centos5 shell]$ exec 6>&- #关闭fd 6描述符 |
在没有执行任何命令之前,文件描述符0,1,2会被自动的与屏幕相关联,可以用下图表示,我们可以简单的把0,1,2理解成指针,现在都指向屏幕
图1
执行
exec
6>&1,就是将fd=6与1关联起来,可以理解为,指针6和指针1指向相同的内容,即
图2
执行exec
1>suc.txt,后,变成:
图3
执行ls -al时,会将输出输入到fd=1对应的文件中,即suc.txt
执行exec
1>&6,变成:图2
执行exec
6>&-后,就是将fd=6关闭,即图1
相关文章推荐
- 简单谈谈自己对SSH框架的理解
- 谈谈自己对比特币脚本的理解
- 谈谈自己对销售和技术的理解
- 简单谈谈自己对htm与css中画圆的理解。
- 谈谈自己对“将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力”一这句话中脚本化的理解
- 谈谈自己对C语言中函数指针的一些理解 (第一次写博客,有点小兴奋哈)
- 谈谈自己对代码结构的理解
- 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
- java抽象类与接口的区别(谈谈自己的理解)
- 谈谈自己对java访问控制的理解
- 谈谈自己对分布式的理解
- 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
- 面试题:有一句格言:“人不一定能使自己伟大,但一定可以使自己崇高”请你联系实际谈谈对这一格言的理解。
- 谈谈自己对闭包的理解
- 谈谈自己对线性最小二乘和非线性最小二乘之间关系的理解~
- 谈谈自己对面向对象的理解
- 谈谈自己的理解:python中闭包,闭包的实质
- 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
- 谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解
- 谈谈自己对js闭包,执行上下文,作用域链,活动对象AO,变量对象VO的理解