可以通过键命令生成SIGABRT(就像SIGINT ctrl + c)?

时间:2016-04-26 10:52:08

标签: c

我对这个信号主题比较陌生,所以想知道当按下ctrl + c时SIGABRT是否由SIGINT等关键命令生成。 任何帮助都会很棒。 继承了我写的代码:

#include<stdio.h>
#include <sys/types.h>
#include<signal.h>
#include<unistd.h>
#include<stdlib.h>
int c=0;
void hand(int signo)
{
    if(signo==SIGINT)
    {
        c++;
        printf("Why the fuck are you interputing me?\n");
    }
    if(signo==SIGABRT)
    {
        printf("Why the fuck are you aborting me?bitch!!\n");
        kill(getpid(),SIGABRT);
        //exit(0);
    }
    if(signo==SIGKILL)
    {
        printf("Why the fuck are you killing me?\n");
        kill(getpid(),SIGKILL);
    }
    if(c>5)
    {
        printf("You execute too many fucking times!!..so now    die\n");
        kill(getpid(),SIGKILL);
    }
}

void main()
{
    int i;
    if(signal(SIGINT,hand)==SIG_ERR)
        printf("Error in catching SIGINT\n");
    if(signal(SIGABRT,hand)==SIG_ERR)
        printf("Error in catching SIGABRT\n");
    if(signal(SIGKILL,hand)==SIG_ERR)
        printf("Error in catching SIGKILL\n");
    for(i=1;i<50;i++) 
    {  
        printf("I'm sleeping...\n");     
        sleep(2 );     
        printf("SIGINT sent %d times",c);   
    }
}

1 个答案:

答案 0 :(得分:0)

从终端

执行以下命令

killall -SIGABRT <your-process>