📄 p8-14.c
字号:
#include <signal.h>#include <setjmp.h>jmp_buf back_to_top_level; volatile sig_atomic_t waiting_for_input;void handle_sigint(int signum){ /* 当信号到达时我们可能一直在等待输入,但是一旦控制转换后便不再等待 */ waiting_for_input = 0; longjmp(back_to_top_level, 1);}int main(void){ ... signal(SIGINT, sigint_handler); ... while(1) { prepare_for_command (); if (setjmp(back_to_top_level) == 0) /* 设置返回点 */ read_and_execute_command (); } }/* 这是一个由各种命令使用的子程序 */char *read_data(){ if (input_from_terminal) { waiting_for_input = 1; ... waiting_for_input = 0; } else { ... }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -