ChinaUnix.net
相关文章推荐:

setitimer

我在下面这篇文章中了解到 "由于 setitimer() 不支持在同一进程中同时使用多次以支持多个定时器,因此,如果需要同时支持多个定时实例的话,需要由实现者来管理所有的实例" http://www.ibm.com/developerworks/cn/linux/l-cn-timers/#download 由于linux线程大致可以看成共享用户空间的进程,因此是否可推论在每个子线程中使用一个setitimer定时器没问题?

by pppStar - C/C++ - 2011-11-18 12:29:39 阅读(4954) 回复(4)

相关讨论

有这样一个问题: 程序中,需要一个定时器,定期去检查一些东西。。 用 signal(SIGALAM,my_fun); ... setitimer(ITIMER_REAL,&a,&b); 假设TIMEOUT是1S,可以正常工作。。 问题在于,程序中有另外一个地方,用到了select();比如说TIMEOUT是2S; 当signal()使用信号量 SIGANLAM的时候,select();不到2S就TIMEOUT了; (相信是因为,select()也是用signal(SIGALAM,select)来计算时间的) 这样就导致了select()不可以正常工作。...

selectsetitimer定时器

by robin10 - C/C++ - 2011-03-03 11:39:41 阅读(8876) 回复(29)

#include #include #include #include /************关于本文档******************************************** *filename: setitimer.c *purpose: 显示了设置闹钟的方法 *wrote by: zhoulifa(zhoulifa@163.com) 周立发(http://zhoulifa.bokee.com) Linux爱好者 Linux知识传播者 SOHO族 开发者 最擅长C语言 *date time:2008-01-26 2333 上海大雪天,据说是多年不遇 *Note: 任何人可以任意复制代码并运用这些文档,当然包括你的...

by tezuka158 - Linux文档专区 - 2009-03-02 21:56:49 阅读(728) 回复(0)

一般来说setitimer计数完后,会发信号SIGALRM给struct sigaction中的注册函数,我想问的是:它的计数是timeout后是否重新开始计数,不停的循环;还是只计数一次,timeout后就停止了?

by nlx_21 - 程序开发 - 2006-06-29 23:01:13 阅读(1589) 回复(4)

一般来说setitimer计数完后,会发信号SIGALRM给struct sigaction中的注册函数,我想问的是:它的计数是timeout后是否重新开始计数,不停的循环;还是只计数一次,timeout后就停止了?

by nlx_21 - Linux环境编程 - 2006-06-29 23:01:13 阅读(3878) 回复(4)

看看这断test程序 #include; #include; #include; #include; #include; void ini_time(){ struct itimerval value; value.it_value.tv_sec=0; value.it_value.tv_usec=100; value.it_interval=value.it_value; setitimer(ITIMER_REAL,&value,NULL); } void Draw(int); int Time=5; int main() { signal(SIGALRM,Draw); ini_time(); int ...

by yemaosimao - C/C++ - 2004-03-27 14:19:42 阅读(1271) 回复(3)

我指的是在同一个进程中,它们会不会相互影响?虽然有点自找麻烦的嫌疑:mrgreen: 测试代码: [code] #include #include #include int sec; void handle() { printf("THIS is alarm timer!\n"); signal(SIGALRM,handle); alarm(10); } void sigroutine(int signo) { switch (signo){ case SIGALRM: printf("Catch a sig...

by ruoyisiyu - C/C++ - 2008-01-22 14:43:28 阅读(2585) 回复(5)

setitimer设定以后,会被那些信号中断啊。 我在程序中起来一个子进程来setitimer,然后再起一个进程建立socket连接,发现当网线被罢出来以后 起setitimer的子进程就死掉了 if(fork()==0) { soctimer(); } int soctimer() { struct itimerval v; v.it_interval.tv_sec=TV_SEC; v.it_interval.tv_usec=0; v.it_value.tv_sec=TV_BSEC; v.it_value.tv_usec=0; /*定时签到*/ setitimer(ITIMER_REAL, &v, NULL); ...

by aaaaal - C/C++ - 2005-12-05 15:38:31 阅读(1181) 回复(0)

小弟想问大家一个问题,就是linux c编程中,setitimer系统调用是向调用该函数的进程发送信号呢还是向所有进程发送信号阿?这个系统调用能向指定的进程发送信号吗?具体应该怎么用阿?

by weiwotianyuan - Linux环境编程 - 2010-05-23 12:55:54 阅读(2029) 回复(1)

【getitimer/setitimer系统调用】 功能描述: 获取或设定间歇计时器的值。系统为进程提供三种类型的计时器,每一类以不同的时间域递减其值。当计时器超时,信号被发送到进程,之后计时器重启动。 用法: #include int getitimer(int which, struct itimerval *value); int setitimer(int which, const struct itimerval *value, struct itimerval *ovalue); 参数: which:间歇计时器类型,有三种选择 ITIMER_REAL //...

by chrhl - Linux文档专区 - 2008-05-22 14:44:34 阅读(876) 回复(0)

如何取消setitimer的定時?

by Arthur_ - Linux环境编程 - 2008-03-04 09:34:38 阅读(6403) 回复(4)