对于dup2(fd,1)的理解

文件描述符中0标准输入,1标准输出,2标准错误
这三个在正常情况下都存在着
你任意open一个文件得到的文件描述符都是至少从3开始
dup2(fd,1)=dup2(fd,STDOUT_FILENO)

dup2(fd,1)
这里复制的是文件描述符(fd)

标准输出(stdout)也就是程序在屏幕终端输出结果。
那dup2(fd,1)的作用就是关闭标准输出,本应该写入到stdout的内容,标准输出已经重定向到目标文件(fd)中,故向标准输出写的数据将会写到目标文件(fd所表示的文件)中。
在这里插入图片描述
在这里插入图片描述
不是将test.txt变成屏幕,而是将写向屏幕的写向test.txt(当然你可以理解成fd->屏幕)

同理dup2(fd,0)也就是是关闭标准输入,本应该从stdin写进的内容,标准输入已经重定向到目标文件(fd)中,目标文件(fd所表示的文件)中的内容也就被当做标准输入。(当然你可以理解为fd->键盘)

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值