关于定时发中断的问题,我用的是timertimeout,小弟请xtang及各位高手帮忙了

小弟教研室有一个项目,要用到定时中断,没个一段时间(小于1秒)产生一个中断,做相应的任务。
我看了看QNX的help和论坛,决定用timertimeout函数,做了个小程序实验了一下,结果基本达到效果,我是刚刚开始学qnx的,请各位看看我的程序有问题没,除了用timertimeout还可以用其他方法么,一下是我的程序!
#include <stdio.h>
#include <errno.h>
#include <stddef.h>
#include <unistd.h>
#include <hw/pci.h>
#include <pthread.h>
int count;
struct sigevent event;
void * thread_proc(void *arg)
{
int int_id;
const uint64_t onesecond=100000000;
const uint64_t timeoutSetTime;
const uint64_t SetTime=10
onesecond;
timeoutSetTime=&SetTime;
int_id=InterruptAttach(_NTO_INTR_CLASS_SYNTHETIC,NULL,NULL,0,0);
event.sigev_notify=SIGEV_UNBLOCK;
while(1)
{
TimerTimeout(CLOCK_REALTIME,_NTO_TMIEOUT_INTR,&event,timeoutSetTime,NULL);
InterruptWait(0,NULL);
++count;

}

}


int main(void)
{
pthread_attr_t attr;
pthrea_attr_init(&attr);
pthread_attr_Setdetachstate(&attr,PTHREAD_CREATE_DETACHED);
pthread_creat(NULL,&attr,&thread_proc,NULL);
while(1)
{
if(count==10)
{printf(“HELLO WORLD!”);
return EXIT_SUCCESS;

}
}
}

我现在给一个专门的电脑装了个qnx系统,它不支持usb
我想把qnx系统下的文件copy到其他的windows下的系统,
我试着上网用邮件的方法,可是我在qnx下好像上不了网,请问有什么好办法么,
谢谢大家!

根据你的说法,应该使用定时器timer_create()。而不应该使用timer_timeout()。他们是不同的概念。

Timer每N秒触发一次。
Timeout是超时,如可能BLOCK的函数,可以使用此函数来避免永远BLOCK。

你的做法理论上说也可以,但比较牵强,做件事情还绕了个弯子,看你程序的人可能就会头大。
使用Timeout来实现Timer的功能还会积累误差,也许不是你想要的结果。

你的专门的电脑不支持USB也不支持网络?! 应该检查一下。
如果硬盘可以拆下来,我倒是有最暴力的法子。在QNX下把硬盘分区,把新区格式化成FAT32格式。把东西COPY进去。再到Win下读写。命令大概如下:

fdisk /dev/hd2 delete -a

fdisk /dev/hd2 add -s1 -t11

mount –e /dev/hd2

mkdosfs -F32 /dev/hd2t11

mount -t dos /dev/hd2t11 /dos

哈哈真的谢谢了,我检查了下网络,现在可以上网,我准备用邮箱传。
请问timertimeout为什么会有累计误差
我现在在看timer_creat()的文档
有例子没,想偷个懒

不知道你看的是哪里的文档。下面这个timer_create()的文档里就有Examples啊?

http://www.qnx.com/developers/docs/6.4.0/neutrino/lib_ref/t/timer_create.html

谢谢你的资料,我用的是Neutrino下的pdf文档,小弟还有一个问题
类似于vc下的listcontrol这个控件,在qnx下如何实现,不胜感激!