如何以posix兼容的方式获得最大信号数?

pet*_*ica 6 posix glibc

更新:整个问题都是坏问题,这是我的c ++代码中的语法错误.

在Linux上我发现了

#define _NSIG            64
Run Code Online (Sandbox Code Playgroud)

in asm-generic/signal.h,但我认为包括那将不是一个真正符合标准的解决方案.

signal.hglibc中使用了这个_NSIG定义,但它隐藏在include-define-undef-ifdef和类似的预处理器命令的复杂结构之后,并且它不是简单后的可见符号#include <signal.h>.

我只是想找到一种方法来找到我能给出的最大值,sigaction以及类似的信号处理api调用,包括实时信号.它有可能吗?

Jen*_*unk 7

POSIX.1-2001标准要求定义SIGRTMINSIGRTMAX.在linux上,它们是使用_NSIG定义的.

要符合POSIX标准,请使用上述定义而不是直接使用 _NSIG

#include <stdio.h>
#include <signal.h>

int main() {
  printf("%lu\n", SIGRTMAX);
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

在使用时编译,在我的系统上打印64 gcc main.cpp