2016-04-26 3 views
-1

Ich bin relativ neu in diesem Thema von Signalen so würde gerne wissen, ob SIGABRT durch einen Tastenbefehl wie SIGINT generiert werden, wenn Strg + c gedrückt wird. Jede Hilfe wäre großartig. heres den Code ich habe geschrieben:Kann SIGABRT mit einem Tastenbefehl generiert werden (genau wie SIGINT ctrl + c)?


#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); 
    } 
} 
+2

Welche Compiler und für das System? C wird mit einer Vielzahl von Plattformen verwendet, und einige von ihnen unterstützen möglicherweise nicht einmal Signale. – user694733

+0

das System, das ich benutze, ist Linux und der Compiler ist GCC –

Antwort

0

Sie den folgenden Befehl von Terminal

killall -SIGABRT <your-process>

+0

ich schreibe tatsächlich einen C-Code, um das Abort-Signal zu fangen, wollte zu welcher Taste drücken (Strg + c) –

+0

Während Sie Ihre ausführbare Datei ausführen, nehmen Sie ein anderes Terminal und führen Sie die über Terminal. – shafeeq

+0

Shortcuts können da sein. aber das wird auch funktionieren. – shafeeq

Verwandte Themen