timeout.c

来自「linux 下实现信号处理」· C语言 代码 · 共 29 行

C
29
字号
#include <stdio.h>
#include <unistd.h>
#include <signal.h>

char user[40];

//alarm 的捕捉函数
void catch_alarm(int sig_num)
{
	printf("Sorry, time limit reached.\n");
	//清除定时器
	alarm(0);
	exit(0);
}

int main(int argc, char* argv[])
{
	//设置信号回调
	signal(SIGALRM, catch_alarm);
	//提示输入用户名
	printf("Your Username(10 seconds limit): ");
	fflush(stdout);
	//设置10秒时限
	alarm(10);
	//等待用户输入
	(char *)gets(user);
	printf("Your username is: '%s'\n", user);
	return 0;
}

⌨️ 快捷键说明

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