对 SIGINT 和 SIG_IGN 的怀疑

ani*_*nil 4 package-management

我正在上一门关于操作系统的课程,因为使用的操作系统是 Linux,我们学习了一个使用SIGINT和的程序SIG_IGN

当我尝试编写我的 PC 编译器中教授的代码时,会显示一条错误消息,但两者都找不到。

如何安装包来安装这些宏?或者我应该做些什么不同的事情来使它们工作?我使用 Ubuntu 12.10

Syl*_*eau 6

为了使用这两个信号,您需要包含signal.h,例如取自与 C 信号相关的维基百科页面的示例:

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

static void catch_function(int signo) {
    puts("Interactive attention signal caught.");
}

int main(void) {
    if (signal(SIGINT, catch_function) == SIG_ERR) {
        fputs("An error occurred while setting a signal handler.\n", stderr);
        return EXIT_FAILURE;
    }
    puts("Raising the interactive attention signal.");
    if (raise(SIGINT) != 0) {
        fputs("Error raising the signal.\n", stderr);
        return EXIT_FAILURE;
    }
    puts("Exiting.");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)