首页 > 代码库 > APUE习题3.5
APUE习题3.5
比较 ./a.out > outfile 2> &1 和 ./a.out 2> &1 > outfile 的区别,回答这个问题只要把笔记“shell脚本->输入输出重定向”中提到的输出重定向的本质给搞清楚就可以了,下面解析这个问题。
先分析 ./a.out > outfile 2> &1 ,shell命令是从左向右执行的,首先是将标准输出重定向到文件outfile中,再是将标准错误重定向到标准输出,从文件描述符层面来看首先是代表标准输出的文件描述符 1 指向了文件outfile的文件表项,而代表标准错误的文件描述符 2 指向了文件描述符 1 指向的文件表项,也就是说 文件描述符 1 和 2 都指向了outfile的文件表项。
分析 ./a.out 2> &1 > outfile ,首先标准错误重定向到标准输出,接着标准输出重定向到文件outfile,从文件描述符层面上来看首先代表标准错误的文件描述符 2 指向了文件描述符 1 指向的文件表项(此刻是显示器的设备文件),接着代表标准输出的文件描述符 1 指向了outfile文件的文件表项,所以文件描述符 1 和 2指向的是不同的文件表项,1 指向的是outfile文件表项,而文件描述 2 指向的是显示器的设备文件。
APUE习题3.5
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。