日期:2014-05-16  浏览次数:20698 次

dup2(fd, 1); 中的 1 是指 stdout,那别的数字指啥??
RT
linux 新手菜鸟。
在学习研究源码时,一直为看不到 printf 的输出而困惑,查了半天原来是 dup2 把 stdout 定位到 /dev/null 了...

问题:
源码中 还有 dup2(fd, 0); 和 dup2(fd, 2); ,那 这里的 0 和 2 指啥??

还有一个问题,有 0、1、2 ,那还有没有别的?比如 3、4、5..... 有的话,分别指啥??


菜鸟求教,万分感谢!!!

------解决方案--------------------
0 标准输入, 1 标准输出,2 标准错误
http://www.360doc.com/content/08/1020/18/26398_1795434.shtml
------解决方案--------------------
3以上就没有特指了,要们是已经打开的文件,socket之类,要么是未使用的文件描述符
------解决方案--------------------
这几个是特指:0 标准输入, 1 标准输出,2 标准错误
其他的就是你自己打开的然后由系统分配的文件描述符了,从4开始算起
------解决方案--------------------
0 标准输入, 1 标准输出,2 标准错误
------解决方案--------------------
这是基础知识,楼上都正解,你可以学看看stevens写的apue这本书
------解决方案--------------------
0,1,2是系统关注的,许多设计都是参考0,1,2这三个数字,其他都无所谓。
------解决方案--------------------
建议先看apue,基础打好了,学其他也容易。