这个表达让我有些困惑:
gcc -c -g program.c >& compiler.txt
我知道&>filename
会将stdout和stderr都重定向到file filename
。但是在这种情况下,“&”号在大于号之后。它看起来像形式M>&N
,其中M
和N
是文件描述符。
在上面的代码段中,是M=1
和N='compiler.txt'
吗?与以下内容有何不同?
gcc -c -g program.c > compiler.txt (ampersand removed)
我的理解是,每个打开的文件都与一个大于2的文件描述符相关联。这正确吗?
如果是这样,文件名是否可以与其作为重定向目标的文件描述符互换?