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);
}
}
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
das System, das ich benutze, ist Linux und der Compiler ist GCC –