这个表达让我有些困惑:
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的文件描述符相关联。这正确吗?
如果是这样,文件名是否可以与其作为重定向目标的文件描述符互换?