我知道用的
gcc -dM -E - < /dev/null
Run Code Online (Sandbox Code Playgroud)
可以得到预定的宏gcc,但是什么呢
- < /dev/null
Run Code Online (Sandbox Code Playgroud)
这个命令意味着什么?根据我的理解,背后应该有一个选项-.我试图搜索gcc手册,但找不到答案.
Jef*_*oom 12
就其本身而言,-意味着"从标准输入读取而不是在此命令行上提供的文件名".这是一个常见的Unix惯例.
所述< /dev/null重定向从标准输入/dev/null,它是长度为0的这样GCC将读取标准输入,立即到达输入的结束,使其只打印预定义的宏(以及在不输入任何宏,因为没有任何输入).这是标准的shell语法,不是特定于GCC的调用.
总之,它们是一种不为期望某些进程提供任何输入的方法.