Tag: timer

定时间隔始终评估为零

主机上的代码如下: #include clock_t start,finish; start=clock(); ret = clEnqueueNDRangeKernel(………); finish=clock(); double time = (double)(finish-start)/(double)(CLOCK_PER_SEC); 为什么结束 – 始终为0? 是因为分辨率低,还是我的定时器代码有问题?

struct itimerspec as timer_create的参数无效参数

我正在尝试使用POSIX信号处理POSIX定时器。 当我尝试执行你可以找到的代码时,我得到: Errore timer_settime:参数无效 在GAPIL上,这是基于高级Linux编程和Unix网络编程的,我读到这可能发生在new_value.value里面你指定了一个负时间值或者高于999999999的纳秒数。但我认为我使用过的参数没关系…… #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include void termination_handler(int signum) { printf(“Timer scaduto\n”); } int main() { timer_t timer1; struct sigevent sigeventStruct; sigeventStruct.sigev_notify = SIGEV_SIGNAL; sigeventStruct.sigev_signo = 10; if(timer_create(_POSIX_MONOTONIC_CLOCK, &sigeventStruct, &timer1) == -1) { printf( “Errore timer_create: %s\n”, strerror( errno ) […]

GTK定时器 – 如何在帧内制作定时器

g_timer_new如何工作? 有可能做一个 char timerz[50]; GTimer *timer g_timer_start(GTimer *timer); strcpy(timerz,(g_timer_elapsed(GTimer *timer)) 或者我该怎么做才能在gtk_frame中有一个计时器? 祝你今天愉快! :d

是否有任何表现良好的POSIX间隔定时器?

受到最后一个闰秒的启发,我一直在使用POSIX调用探索计时(特别是间隔计时器)。 POSIX提供了几种设置计时器的方法,但它们都有问题: sleep和nanosleep sleep – 这些都是在被信号中断后重新启动,并引入时钟偏差。 你可以通过一些额外的工作来避免一些但不是全部的这种偏差,但这些function使用的是实时时钟,所以这并非没有陷阱。 setitimer或更现代的timer_settime被设计为间隔定时器,但它们是每个进程,如果你需要多个活动定时器,这是一个问题。 它们也不能同步使用,但这不是什么大问题。 与clock_nanosleep使用时, clock_gettime和clock_nanosleep似乎是正确的答案。 clock_nanosleep支持绝对超时,因此您可以只是睡眠,增加超时,然后重复。 在中断之后也很容易重启。 不幸的是,这些function可能也是特定于Linux的:在Mac OS X或FreeBSD上不支持它们。 pthread_cond_timedwait在Mac上可用,并且可以作为一个kludgy解决方案使用gettimeofday ,但在Mac上它只能与实时时钟一起使用,因此当系统时钟设置或闰秒发生时它会受到不良行为的影响。 我缺少一个API吗? 是否有一种合理的可移植方式在类UNIX系统上创建表现良好的间隔计时器,或者这总结了今天的状态? 通过良好的行为和合理的便携性,我的意思是: 不容易出现时钟偏差(当然,减去系统时钟自身的偏差) 适应正在设置的系统时钟或发生闰秒 能够在同一个过程中支持多个计时器 至少可在Linux,Mac OS X和FreeBSD上使用 关于闰秒的注释 (响应R ..的回答 ): POSIX天的长度恰好是86,400秒,但现实世界的日子很少会更长或更短。 系统如何解决这种差异是由实现定义的,但闰秒通常与前一秒共享相同的UNIX时间戳。 另请参见: 闰秒以及如何处理它们 。 Linux内核闰第二个错误是在将时钟设置为秒后未能进行内务处理的结果: https : //lkml.org/lkml/2012/7/1/203 。 即使没有那个错误,时钟也会向后跳一秒钟。

如何在C中使用计时器?

在C中使用计时器的方法是什么? 我需要等到500毫秒才能找到工作。 请提及做这项工作的任何好方法。 我用过sleep(3); 但是这种方法在那段时间内没有做任何工作。 我有一些东西会尝试,直到那个时间来获得任何输入。