由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Linux版 - 请教一个linux下的POSIX timer的问题。 (转载)
相关主题
求助,安装PERL 5.8.8 (www.cpan.org)到红帽AS4如何把Linux平台下C++源代码转换到 windows平台下编译?
请问如何在Ububtu9.04安装online manual (e.g. man pthread_exit)What is the biggest diff between Win and Linux?
继续批评 gentoo问个很弱的问题啊,关于terminal显示中文字
Chrome for Linux (beta)如何确保多线程程序在 multicore server 用所有 core
问个rpy2的问题job scheduling question
问一个 Shell 的问题openMP or boost::thread (pthread) for multithreading ?
Pthread一个牵涉两个线程同步,每轮先串行后并行的问题linux上面有没有轻量级的message queue? POSIX message queue不合适。
Process and Threadlinux 下为什么没有修复permissions
相关话题的讨论汇总
话题: timer话题: settime话题: tid1话题: time话题: int
进入Linux版参与讨论
1 (共1页)
d**d
发帖数: 389
1
【 以下文字转载自 Programming 讨论区 】
发信人: dxxd (东邪西毒), 信区: Programming
标 题: 请教一个linux下的POSIX timer的问题。
发信站: BBS 未名空间站 (Fri May 13 17:06:15 2011, 美东)
我用linux下面的POSIX timer, timer_create(),timer_settime(),
为什么在调用了timer_settime()以后,立马就有一个time-out callback? 然后再每过
5秒后有一个time out?
难道不是我调用timer_settime()以后,timer开始计时, 等到5秒以后再出现第一
time out callback 吗?
非常感谢!
代码如下:
#include
#include
#include
#include
#include
void
handle (sigval_t v)
{
time_t t;
char p[32];
time (&t);
strftime(p,sizeof(p),"%T ",localtime(&t));
printf("%s thread 0x%x,val=%d,signal captured.\n",p,pthread_self(),
v.sival_int);
return;
}
timer_t tid1;
timer_t create_timer(int id)
{
struct sigevent se;
memset(&se,0,sizeof(se));
se.sigev_notify = SIGEV_THREAD;
se.sigev_notify_function = handle;
se.sigev_value.sival_int = id;
if(timer_create(CLOCK_REALTIME,&se,&tid1) < 0)
{
perror("timer_creat");
return -1;
}
printf( "timer_create successfully.\n");
return tid1;
}
int set_timer(timer_t id, long time)
{
struct itimerspec ts, ots;
ts.it_value.tv_sec =time;
ts.it_value.tv_nsec =0;
ts.it_interval.tv_sec=time;
ts.it_interval.tv_nsec=0;
if(timer_settime(id,TIMER_ABSTIME,&ts,&ots)<0)
{
perror( "timer_settime");
return -1;
}
}
int stop_timer(timer_t id)
{
set_timer(id,0);
}
int
main(void)
{
tid1=create_timer(1);
set_timer(tid1,5);
for(;;)
t*****d
发帖数: 23
2
I think someone already replied to your post:
if(timer_settime(id,TIMER_ABSTIME,&ts,&ots)<0)
^^^^^^^^^^^^
1 (共1页)
进入Linux版参与讨论
相关主题
linux 下为什么没有修复permissions问个rpy2的问题
原来MAC是BSD的一支?问一个 Shell 的问题
in what case you still want to use process instead of thread in linux ?Pthread一个牵涉两个线程同步,每轮先串行后并行的问题
为什么linux是portable?Process and Thread
求助,安装PERL 5.8.8 (www.cpan.org)到红帽AS4如何把Linux平台下C++源代码转换到 windows平台下编译?
请问如何在Ububtu9.04安装online manual (e.g. man pthread_exit)What is the biggest diff between Win and Linux?
继续批评 gentoo问个很弱的问题啊,关于terminal显示中文字
Chrome for Linux (beta)如何确保多线程程序在 multicore server 用所有 core
相关话题的讨论汇总
话题: timer话题: settime话题: tid1话题: time话题: int