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 + -
显示快捷键?