sleep2.c
来自「unix环境高级编程一书源代码 本书全面介绍了UNIX系统的程序设计界面—系统」· 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 + -
显示快捷键?