p8-14.c

来自「SUN Solaris8平台下进程间通信」· C语言 代码 · 共 33 行

C
33
字号
#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 + =
减小字号Ctrl + -
显示快捷键?