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