信号模拟 sleep 函数,定时器

来源:互联网 发布:golang sleep 1毫秒 编辑:程序博客网 时间:2024/06/06 18:21
#include <unistd.h>#include <signal.h>#include <stdio.h>void sig_alrm(int signo){printf("this is the alarm function\n");}unsigned int mysleep(unsigned int nsecs, __sighandler_t handler){struct sigaction newact, oldact;unsigned int unslept;newact.sa_handler = handler;sigemptyset(&newact.sa_mask);newact.sa_flags = 0;sigaction(SIGALRM, &newact, &oldact);alarm(nsecs);pause();unslept = alarm(0);sigaction(SIGALRM, &oldact, NULL);return unslept;}int main(void){while(1) {unsigned int n = mysleep(2,sig_alrm);printf("%d seconds passed !\n",n);}return 0;}

原创粉丝点击