1和2在命令行输入/输出重定向中的含义是什么?

时间:2015-04-11 23:41:10

标签: linux

foo >out 2>&1
foo 2>&1 >out

输出为1,输入为0,如C?

2 个答案:

答案 0 :(得分:1)

0,1和2是* NIX系统中的标准文件描述符。

2>&1#将stderr重定向到stdout。

0 |标准输入| STDIN_FILENO |标准输入

1 |标准输出| STDOUT_FILENO |标准输出

2 |标准错误| STDERR_FILENO | stderr

答案 1 :(得分:0)

1和2指的是文件句柄,与使用系统调用进行低级文件管理时C中的文件句柄具有相同的含义。

Linux中的文件句柄是小整数,用于索引每进程struct file *表。索引0分配给所谓的标准输入的文件句柄,索引1分配给标准输出,索引2分配给标准错误。