理解文件描述符后,通过下面的代码,理解重定向
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/ba22c82d4d490b2ca071a5a475b0cab2.png)
查看结果:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/11723118aa8eeb6fd736990492729823.png)
程序解释:
我们关闭了标准输出,根据文件描述符的分配规则,新打开的文件myfile使用文件描述符1,之后我们输出的内容,输出到了myfile文件中,原理如下:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b912753b03bce90e2c8822ad9a217644.png)
dup2接口:
int dup2(fd1, fd2)
fd1 和 fd2是两个文件描述符
这个函数会先判断fd1和fd2是不是同一个值,如果是的就直接返回fd2。如果不是的,它会先把fd2指向的文件关闭,然后把下标为fd1的指针赋值给下标为fd2的指针然后把fd2返回
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/3b6944de601206db410346bf95aab069.png)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9ecc562a6e0cd7abd5666f2cc71ae486.png)
重点向的相关指令可参考🔗