您的位置:首页 > 其它

信号模拟 sleep 函数,定时器

2012-08-17 11:36 369 查看
#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: