【发布时间】:2018-10-31 06:47:40
【问题描述】:
现在我正在制作一个程序,该程序应该模仿 Bash 如何处理信号。是否有更有效的方式打印到终端信号终止消息(如“分段错误”、“非法指令”、“闹钟”等)?因为现在我脑海中的只是一长串的 if/else if 语句来迎合每个信号。
if((WIFSIGNALED(status) && ((WTERMSIG(status) != SIGINT)))){
...
else if(/*signal == 7*/){
fprintf(stderr, "Bus error");
}
else if(/*signal == 8*/){
fprintf(stderr, "Floating point exception");
}
...
if(/*signal == 11*/){
fprintf(stderr, "segmentation fault ");
}
...
}
这似乎是在尝试使用蛮力。
【问题讨论】: