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