timeout2.c

来自「本文件介绍了unix内核的c源代码」· C语言 代码 · 共 28 行

C
28
字号
#include <setjmp.h>#include <stdio.h>#include <unistd.h>#include <signal.h>int timeout = 0;jmp_buf env;void timefunc(int sig)				/* 定时事件代码 */{	timeout = 1;	longjmp(env, 1);}void main (){	char c;	signal(SIGALRM, timefunc);  	/* 捕获定时信号 */	setjmp(env);	if (timeout == 0)				/* 正常处理 */	{		alarm(3);				/* 定时3秒 */		read(0, &c, 1); 			/* 读取字符 */		alarm(0);				/* 取消定时 */		printf("%d\n", c);			/* 打印输入 */	}	else 						/* 超时处理 */		printf("timeout\n");			/* 打印超时 */}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?