C 要处理中断,请执行以下操作:

C 要处理中断,请执行以下操作:,c,C,代码: #包括 #包括 无效处理程序(int sig) { printf(“捕获信号”\n); 出口(0); } int main() { printf(“\n您可以按ctrl+c来测试此程序\n”); if(信号(SIGINT,handler)=SIG_ERR) perror(“信号错误”); 暂停();/*等待接收信号*/ 出口(0); } 用户输入:必须是中断 输出必须是:捕获sigint因为Ctrl-Z导致sigtsp,而不是sigint,因为Ctrl-Z导致sigtsp,而不是sig

代码:

#包括
#包括
无效处理程序(int sig)
{
printf(“捕获信号”\n);
出口(0);
}
int main()
{
printf(“\n您可以按ctrl+c来测试此程序\n”);
if(信号(SIGINT,handler)=SIG_ERR)
perror(“信号错误”);
暂停();/*等待接收信号*/
出口(0);
}
用户输入:必须是中断
输出必须是:捕获sigint

因为Ctrl-Z导致
sigtsp
,而不是
sigint
,因为Ctrl-Z导致
sigtsp
,而不是
sigint

Ctrl-Z发送
sigtsp

读物:


Ctrl-Z发送
SIGTSTP

读物:

In the following program:

Ctrl+z and ctrl+c both are interrupts.
The code is supposed to handle any interrupt.


Then why does only one of them(ctrl+c) work?
#include <signal.h>
#include<stdio.h>
void handler(int sig)
{
    printf("Caught SIGINT\n");
    exit(0);
}

int main() 
{
    printf("\nYou can press ctrl+c to test this program\n");
    if (signal(SIGINT, handler) == SIG_ERR) 
    perror("signal error");

    pause(); /* wait for the receipt of a signal */

    exit(0);
}