linux中./a.out > outfile 2>&1和./a.out 2> &1 >outfile重定问题的理解
来源:互联网 发布:aris软件流程 编辑:程序博客网 时间:2024/06/07 14:18
今天看到《unix环境高级编程》中的一个问题
官方的答案是
我看了答案还是不太理解,为什么第二个问题的答案说2指向了1,然后1又指向了outfile,为什么后面2没有指向outfile,而是指向了输出,后面我在网上查了一下,自己想了下终于明白了。
大家编程都学过A,B两个变量数值交换的方法(C=A,A=B,B=C),我们这里可以把1(stdout,标准输出),2(stderr,标准错误)看成是个变量,可以把这里的问题看成是变量赋值。
对于第一个问题./a.out > outfile说的是把输出(1)重定向到outfile(也就是1=outfile),然后再看2>&1,这里可以看成2=1,而这时1=outfile,所以这里标准输出和标准错误都指向outfile了。(首先 1>可以简写为>, 其次1代表stdout,输出为终端上;2代表stderr,我也觉得在终端上。在1前面加上&是为了表明&1是stdout,而不是文件名为1的文件;)
对于第二个问题./a.out 2> &1,这里可以看成2=1,此时1指向标准输出,所以2也指向标准输出,后面>outfile,因为1>可以简写为>,所以这里是1指向了outfile,所以就是答案里说的描述符1指向outfile的文件表项,描述符2指向终端的文件表项。(这里2在1改变之前已经指向了1之前的值,不管1后面指向什么地方2都指向标准输出)
在网上找到了一篇文章(http://blog.chinaunix.net/uid-25909722-id-2912890.html)。
0 0
- linux中./a.out > outfile 2>&1和./a.out 2> &1 >outfile重定问题的理解
- [linux]/a.out > outfile 2>&1和./a.out 2> &1 >outfile理解
- 【UNIX】./a.out > outfile 2>&1和./a.out 2>&1 > outfile的区别
- apue习题3.5 a.out > outfile 2>&1重定向问题
- Android问题:System.out.println('a'+'b')和System.out.println('1'+'2');
- 关于a.out 理解
- //outfile.cpp--writing to a file
- select into outfile和load data infile的问题
- a.out的故事
- a.out的由来
- String a;System.out.println("1:"+a);
- bash: ./a.out: Permission denied的问题
- linux c/c++ a.out的由来
- a.out
- a.out
- ELF和a.out文件格式的比较
- ELF和a.out文件格式的比较
- ELF和a.out文件格式的比较
- 早期(编译器)优化
- 单向链表的建立
- 使用myEclipse来生成hibernate 持久化类和映射文件
- leetcode--Search a 2D Matrix
- STL数字字符串转换为数字
- linux中./a.out > outfile 2>&1和./a.out 2> &1 >outfile重定问题的理解
- SSH——Hibernate初学者之旅(六)
- Python使用Requests第三方库自动登陆知乎
- 直升机飞行控制
- Android JellyBean Keyguard锁屏
- LeetCode(17)-Letter Combinations of a Phone Number
- android PopupWindow详解
- kdb 环境搭建成功
- Bootstrap-Table实现从服务器加载数据进行显示