1
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);
}

ユーザーによる入力:割り込みである必要があります出力である必要があります:Caught sigint

4

2 に答える 2

7

SIGTSTPCtrl-Zは、ではなく、を引き起こすためSIGINTです。

于 2013-03-02T14:07:37.200 に答える
4

Ctrl-Zはを送信しますSIGTSTP

読むべきこと:

于 2013-03-02T14:09:17.970 に答える