信号模拟 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; }
相关文章推荐
- 信号捕捉与模拟实现sleep()函数
- 信号捕捉&模拟sleep的简单实现
- 信号的捕捉以及sleep的模拟实现
- Linux环境编程之信号处理(三、利用alarm()和pause()函数实现sleep()函数)
- 信号的发送和捕捉函数(alarm、kill、raise、pause、 sleep、abort)
- signal 信号捕捉 和模拟实现 my_sleep
- 利用函数alarm和pause模拟sleep
- 内插函数恢复模拟信号
- 进程线程中睡眠函数(sleep)被信号中断后失效,处理方式总结
- Linux 信号 模拟实现sleep
- 信号的发送和捕捉函数(alarm、kill、raise、pause、 sleep、abort)
- Linux 多线程应用中如何编写安全的信号处理函数
- Win32函数Sleep的精度测试
- 模拟实现内存操作函数memcpy、memmove
- Thread.Sleep 函数
- boost库学习随记六:使用同步定时器、异步定时器、bind、成员函数回调处理、多线程的同步处理示例等
- 模拟实现strncat函数(字符串追加函数)
- 发送一次信号槽函数多次响应
- qt信号和槽问题(变量只在槽函数中改变问题)
- 十六、Linux系统编程-信号(三)其他信号发送函数、可重入及不可重入函数