sleep2.c

来自「APUE(第二版)的随书源代码,与第一版的代码相比增加了一些章节的代码(详见第二」· C语言 代码 · 共 24 行

C
24
字号
#include	<setjmp.h>#include	<signal.h>#include	<unistd.h>static jmp_buf	env_alrm;static voidsig_alrm(int signo){	longjmp(env_alrm, 1);}unsigned intsleep2(unsigned int nsecs){	if (signal(SIGALRM, sig_alrm) == SIG_ERR)		return(nsecs);	if (setjmp(env_alrm) == 0) {		alarm(nsecs);		/* start the timer */		pause();			/* next caught signal wakes us up */	}	return( alarm(0) );		/* turn off timer, return unslept time */}

⌨️ 快捷键说明

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