楼上的想让你的程序变成悲剧...linux下sleep函数的参数是秒为单位的...休眠200秒...
睡眠小于1秒用usleep,单位是毫秒...
所以,楼上的程序把sleep改成usleep就可以
了...
while(1)
{
/*
any
thing
you
want
to
do*/
usleep(200)
}
另外我觉得你要说的好像是:希望while循环执行某些 *** 作,执行时间到200毫秒之后退出while循环?
最简单是用间隔定时器...
你查下这几个函数:timer_create,timer_settime等。
时间设置比较精确,可以设置一段时间间隔,过了指定的时间之后,会给当前进程发送一个SIGALRM信号,你while循环的条件,可以在SIGALRM的信号处理函数里面修改,这样,到时间之后while就可以退出了....
这样写:
//...
...
...
static
char
flag=1
...
int
main(void)
{
signal(SIGALRM,
timer_handler)
/*
申请并且设置间隔定时器的间隔
*/
while(flag)
{
/*循环内的 *** 作*/
}
...
return
0
}
void
timer_handler(unsigned
int
signal)
{
flag=0
}
#include <unistd.h> // 头文件int usleep(useconds_t usec) // 函数原型usec -- 毫秒。整数。最大允许值:小于 1000000返回 0 -- 表示调用执行成功,1 -- 失败。欢迎分享,转载请注明来源:内存溢出
评论列表(0条)