信号如何在linux上运行(c)?

时间:2016-06-07 16:37:40

标签: c linux signals

我应该在终端输入什么来打印“Hi”或“Bye”?

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

void catcher1(int signum)
{
    printf("/nHi");
    kill(getpid(),22);
}

void catch22(int signum)
{
    printf("\nBye\n");
    exit(0);
}

main()
{
    signal(SIGTERM, catcher1);
    signal(22, catch22);
    printf("\nLook & Listen\n");
    while(1);
}

1 个答案:

答案 0 :(得分:2)

来自this link

信号是软件中断。它们用于UNIX和类UNIX操作系统(如Linux)中的进程间通信。 自20世纪70年代贝尔实验室UNIX以来,信号一直在使用,今天正由POSIX标准正式定义。 当信号发送到进程时,操作系统会中断进程执行的正常流程并传递通知。如果该进程先前已经注册了处理该特定信号的方法,则执行该例程,否则系统执行默认信号处理程序。 可以使用kill命令发送信号。

因此,信号不是在终端中输入的东西,而是输入某些字符或命令来发送信号。