码迷,mamicode.com
首页 > 其他好文 > 详细

APUE习题3.5

时间:2016-10-01 17:11:53      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

    比较 ./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

标签:

原文地址:http://www.cnblogs.com/frank-yxs/p/5925853.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!