当前位置:  技术问答>linux和unix

求定时器!

    来源: 互联网  发布时间:2015-06-01

    本文导语:  有没有用过定时器的(alarm()或者setitimer(),最好是后者)同仁,给个例子,并恳请留下qq号或msn,讨论、学习 | int main(int argc, char* argv[]) {     signal( ALRM, timeout)     alarm(3);       {   ...

有没有用过定时器的(alarm()或者setitimer(),最好是后者)同仁,给个例子,并恳请留下qq号或msn,讨论、学习

|
int main(int argc, char* argv[])
{
    signal( ALRM, timeout)
    alarm(3);  
    {
        struct itimerval  new;
        new.it_interval.tv_sec = 3;
        new.it_interval.tv_usec = 0;
        new.it_value = new.it_interval;
        setitime( ITIMER_REAL , &new, NULL )
    
    }
     pause();
}

void timeout()
{
    printf("timeout .... ");
}


|
void Timer(int sec, long usec)
{
    struct timeval tvSelect;
    
    tvSelect.tv_sec = sec;
    tvSelect.tv_usec = usec;

    select(FD_SETSIZE, NULL, NULL, NULL, &tvSelect);

};

int main()
{
printf("--- begin ---n");
Timer(3, 1000*500);
printf("--- bye ---n");
}

|
会。看APUE里信号处理部分。

|
sleep()
usleep()

|
长知识了

|
还不够,再提示一点:

select 实现的定时器,sleep系列实现的定时器,都可能被其它信号打断。所以可能达不到需要的定时要求。看看select最后一个参数在返回后的值。再研究研究sleep系列的返回值。

|
又从大家那里学到了不少知识:
    以前只知道alarm()、timer_create(),也知道select()的用法,但没有想到把select()用作定时器-----感谢“小石头”;
    但paopaoer兄弟的信号处理函数的定义就有问题,至少得用个地址符号吧(&);
    
    alarm()实现的定时器很简单,到了时间会向调用进程发送SIGALRM信号,所以可以定义信号的处理函数来在时间到达时做一些事情;但是如果定义了多个alarm定时器,那么就会有多个SIGAL*信号发送到调用进程,会引起紊乱;所以alarm()适合于简单的应用;
    当要用到多个需要定时器的应用,就需要用timer了,它的参数可以指定当时间到达是向调用进程提交的动作(发信号、直接去触发代理等);
    可惜我这里没有程序,等有了就发给你。

|
定时器和延时是两个不同的东西。延时可以用nanosleep,不会影响信号。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux 多个定时器 几乎同时到时 , 部分定时器信号 丢失的问题.
  • 定时器的问题请教
  • Linux用户态可以通过同一段程序创建多个定时器么?
  • 请问如何实现多个并行的定时器?
  • 想做个定时器,不知道怎么做?
  • Jquery定时器的简单示例
  • 请问linux下的定时器怎么使用??******************************
  • 定时器如何销毁?
  • linux 定时器销毁
  • 请教关于unix中定时器的语法
  • linux中的串口通信判断一帧数据是否传输完整时,用定时器检查前后两帧数据的间隔时间,该用什么定时函数,有详细代码最好,谢谢!
  • tcp重传定时器,怎么实现的啊?
  • Linux 提供的基于文件描述符的定时器接口
  • 如何实现多定时器?
  • linux下如何设置高精度定时器?
  • linux定时器!
  • 定时器与getchar()的问题??奇怪!
  • 多定时器问题
  • 关于select定时器的问题
  • 定时器问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3