APUE习题3.5

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的主要内容,如果未能解决你的问题,请参考以下文章

APUE习题3.6

APUE 练习题4.11

apue第四章习题的一些拙见(不定时更新)

《APUE.3E》习题4.6编写自己的cp(l)程序,它复制包含空洞的文件,但不将字节0包含到输出文件中去

Python练习题3.5字符转换

薛毅书习题 3.5,3.7,3.8,3.10,3.11