嗨 我在一个文件中定义了一个信号处理程序,从那里生成信号。我已经定义了一个“static struct sigaction”来定义一个非静态的信号处理程序。
我们知道使用“静态”我们也可以将范围限制到一个文件,所以使用这种技术我们可以限制信号处理程序只捕获来自定义它的文件的信号吗?
我的"file"- File1,与其他文件- File2 链接,File2 可以生成信号,不应被 File1 处理程序捕获。那么,如果我在 File1 中放置“static struct sigaction”,我可以实现这个吗?
enter code here
File1.c
static struct sigaction;
void sigHandler(int sig); // also a handler for SIG_NO but should catch signals generated for only File1.c (sig handler is non-static)
File2.c
kill(getpid(), SIG_NO)
File1.c and File2.c are linked together.
最佳答案
在何处声明/定义处理程序并不重要。如果您要安装处理程序,它会处理进程接收到的所有该类型的信号。
因此,无论您的标识符的范围和链接如何,一旦您安装了处理程序,它就会处理所有事情。
关于c - 限制信号处理程序仅捕获来自定义它的特定文件的信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739994/