社区
Linux/Unix社区
帖子详情
dup2(fd, 1); 中的 1 是指 stdout,那别的数字指啥??
CCDDzclxy
2013-11-13 10:33:08
RT
linux 新手菜鸟。
在学习研究源码时,一直为看不到 printf 的输出而困惑,查了半天原来是 dup2 把 stdout 定位到 /dev/null 了...
问题:
源码中 还有 dup2(fd, 0); 和 dup2(fd, 2); ,那 这里的 0 和 2 指啥??
还有一个问题,有 0、1、2 ,那还有没有别的?比如 3、4、5..... 有的话,分别指啥??
菜鸟求教,万分感谢!!!
...全文
232
7
打赏
收藏
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..... 有的话,分别指啥?? 菜鸟求教,万分感谢!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LFYer
2013-11-14
打赏
举报
回复
建议先看apue,基础打好了,学其他也容易。
qq120848369
2013-11-14
打赏
举报
回复
0,1,2是系统关注的,许多设计都是参考0,1,2这三个数字,其他都无所谓。
Smile_大笑
2013-11-13
打赏
举报
回复
这是基础知识,楼上都正解,你可以学看看stevens写的apue这本书
ithiker
2013-11-13
打赏
举报
回复
0 标准输入, 1 标准输出,2 标准错误
czc1009
2013-11-13
打赏
举报
回复
这几个是特指:0 标准输入, 1 标准输出,2 标准错误 其他的就是你自己打开的然后由系统分配的文件描述符了,从4开始算起
Carl_CCC
2013-11-13
打赏
举报
回复
3以上就没有特指了,要们是已经打开的文件,socket之类,要么是未使用的文件描述符
max_min_
2013-11-13
打赏
举报
回复
0 标准输入, 1 标准输出,2 标准错误
http://www.360doc.com/content/08/1020/18/26398_1795434.shtml
对于
dup2
(
fd
,1)的理解
文件描述符
中
0标准输入,1标准输出,2标准错误 这三个在正常情况下都存在着 你任意open一个文件得到的文件描述符都是至少从3开始
dup2
(
fd
,1)=dup(
fd
,
STDOUT
_FILENO)
dup2
(
fd
,1) 这里复制的是文件句柄 (在c语言下就是FILE结构体 )而不是文件描述符(
fd
) 此时标准输出(
stdout
)(程序在屏幕终端输出结果) 那
dup2
的作用就是关闭标准输出,本应该写...
dup和
dup2
函数
dup和
dup2
函数 dup和
dup2
是两个非常有用的调用,他们的作用都是用来复制一个文件的描述符(使我们能够通过两个或者更多个不同的文件描述符来访问同一个文件),他们经常用来重定向进程的stdin、
stdout
和stderr。 声明如下: #include<unistd.h> int dup(int
fd
); 源描述符
fd
,返回值是描述符表
中
最小的文件描述符,返回的描述符和...
linux c——dup( )和
dup2
( )函数详解
dup()函数和
dup2
()函数书上在文件操作那一章,已经讲过了,这周看重定向这块,发现它挺重要,就再看了回,记录下。 1、 dup函数 头文件及函数定义: #include &lt;unistd.h&gt; int dup(int old
fd
); dup用来复制参数old
fd
所
指
的文件描述符。当复制成功是,返回最小的尚未被使用过的文件描述符,若有错误则返回-1.错误代码存入errno
中
...
linux 标准输出 复制,使用LINUX
dup2
复制文件描述符到标准输出
STDOUT
_FILENO
78 #include9 #include 10 #include 11 #include 12 #include 13 #include 14151617 int main(int argc,char *argv[])18 {19 int
fd
;20 char ch;21 setbuf(
stdout
, NULL);22 if(argc<2)23 {2...
关于
dup2
(
fd
[0],
STDOUT
_FILENO) 的一些波折
在看 unix 环境高级编程 的时候,在管道这一部分,还没有看到后面的代码时,一直被一个问题困扰着。先看代码 //15-6 #include "apue.h" #include <sys/wait.h> #define DEF_PAGER "/bin/more" /* default pager program */ int main(int argc, char *argv...
Linux/Unix社区
23,116
社区成员
74,506
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章