我知道使用
gcc -dM -E - < /dev/null
可以得到gcc
的预定义宏,但
- < /dev/null
在这个命令中意味着什么?根据我的理解,-
背后应该有一个选项。我试图搜索gcc manual,但找不到答案。
答案 0 :(得分:12)
就其本身而言,-
表示&#34;从标准输入读取而不是在此命令行上提供的文件名&#34;。这是一种常见的Unix惯例。
< /dev/null
重定向来自/dev/null
的标准输入,其长度为0.因此,GCC将从标准输入读取并立即到达输入的末尾,使其仅打印预定义的宏(而不是输入中的任何宏,因为没有任何输入)。这是标准的shell语法,不是特定于GCC的调用。
在一起,它们是一种不向期望某些进程的进程提供任何输入的方法。