#include<signal.h>
#include<stdio.h>
#include<string.h>
#include<errno.h>
#include<unistd.h>
int ctrl_c(void)
{
char ctr[]={"Really quit ???"}; //注意这个地方有大括号
write(STDERR_FILENO,ctr,strlen(ctr));
return 0;
}
int main(void)
{
struct sigaction act;
sigemptyset(&act.sa_mask);
act.sa_flags=0;
act.sa_handler=ctrl_c;
if(sigaction(SIGINT,&act,NULL)<0)
fprintf(stderr,"signation error :%s",strerror(errno));
while(1)
{}
return 0;
}
//note:通过sigaction()这个函数触发ctrl_c()这个函数 SIGINT这个代表中断信号 快捷键就是ctrl+c 具体 man 7 signal