0

これが私のコードです:

#include <stdio.h>
#include <setjmp.h>
#include <signal.h>

jmp_buf buf;

void handler(int s);

int main(int argc, char **argv) {
    signal(SIGINT, handler);
    if (setjmp(buf)) {
        printf("back again!\n");
        return 0;
    } else {
        printf("first here.\n");
    }

    for (;;) {}
}

void handler(int s) {
    longjmp(buf, 1);
}

Windows 8 64ビットのVS 2012でコンパイルします。Control+C を押すたびに、プログラムは期待どおりに再起動せず、動作を停止します。誰でも私を助けることができますか?

4

2 に答える 2