信号在实现之间有所不同。APUE(Unix环境中的高级编程)中有一些很好的表格,例如第2版第292页的“图10.1 UNIX系统信号”。
因此,让我们以示例为例SIGWAITING
。信号在文档中显示为int
,但大多数实现似乎使用 a#define
而不是 a const int
。
但是,该标准是否规定了可以依赖信号的任何地方#define
?或者我可以基于这样一个事实假设它,例如,几乎每个现有的实现都使用#define
. 或者这完全是一个糟糕的假设?
基本原理是:如果我可以依赖#define
被使用,我可以使用它#ifdef
来隐藏不使用它的实现的更奇特的信号。对于const int
常量名称,我不知道允许做出此编译时间决定的类似机制。