LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1066|回复: 3

请教一个关于定时器的问题

[复制链接]
发表于 2006-8-8 10:43:20 | 显示全部楼层 |阅读模式
在嵌入式开发板上运行一个简单的定时器测试程序:
#include <stdio.h>
#include <time.h>
#include <sys/time.h>
#include <stdlib.h>
#include <signal.h>
int count = 0;
void set_timer()
{
        struct itimerval itv, oldtv;
        itv.it_interval.tv_sec = 0;
        itv.it_interval.tv_usec = 10000;
        itv.it_value.tv_sec = 0;
        itv.it_value.tv_usec = 10000;

        setitimer(ITIMER_REAL, &itv, &oldtv);
}

void sigalrm_handler(int sig)
{
        count++;
        printf("timer signal.. %d\n", count);
}

int main()
{
        signal(SIGALRM, sigalrm_handler);
        set_timer();
        while (count < 1000)
        {}
        exit(0);
}
但在运行时,进入sigalrm_handler后,提示Alarm Clock 退出程序,若在台式机的Linux中运行,则提示“闹钟”,退出程序。好像是内核有什么保护,如何解决,请各位高人指点。
发表于 2006-8-8 14:09:16 | 显示全部楼层
...处理函数里不能有 printf 这类函数吧...


<<LINUX编程第二版>> 看到类似的,好象是这么说的.
回复 支持 反对

使用道具 举报

发表于 2006-8-8 14:30:40 | 显示全部楼层
我的笔记本上是正常的
2.6.17 + suspend2
回复 支持 反对

使用道具 举报

发表于 2006-8-9 20:04:57 | 显示全部楼层
我的本上它也是正常的

不管怎样, 楼主这样的程序对于 CPU 资源来说是一种巨大的浪费, 试着换种方式思考吧
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表