这是我的代码:
#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 时,程序都不会按预期重新启动,而是停止工作。有人可以帮助我吗?