请问该如何让C语言sleep()函数等待时间小于1秒?该怎么做?

急用!
我是要0.01s执行一次,按理说编程是sleep(10),但为什么不能执。
我的程序是运用c编,sleep 和delay都试过了,但还是不行。

有只小跳蛙
浏览 754回答 3
3回答

慕容3067478

sleep()函数大概只能精确到50ms左右,你用sleep(10)是肯定不行的,如果你要精确的定时的话可以使用QueryPerformanceFrequency()函数,用法为:LARGE_INTEGER litmp;LONGLONG QPart1,QPart2;double dfMinus, dfFreq, dfTim;QueryPerformanceFrequency(&litmp);dfFreq = (double)litmp.QuadPart;// 获得计数器的时钟频率QueryPerformanceCounter(&litmp);QPart1 = litmp.QuadPart;// 获得初始值do{QueryPerformanceCounter(&litmp);QPart2 = litmp.QuadPart;//获得中止值dfMinus = (double)(QPart2-QPart1);dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒}while(dfTim<0.001);其定时误差不超过1微秒,精度与CPU等机器配置有关。×××××××××××××××××××××××××sleep()函数的中等待时间是以毫秒计算的,所以等待1秒就是sleep(1000),如果要让等待时间小于一秒,那么就让传入的参数小于1000就行了.比如,等待0.1秒:sleep(100);

阿晨1998

TC中sleep()函数原型为: unsigned sleep(unsigned seconds); 参数单位为秒delay()函数原型为: unsigned sleep(unsigned seconds); 参数单位为毫秒函数sleep()确实会暂停x秒,但delay()多数情况下不精确,可以不断修正设置的数值,来达到控制时间的目的。

郎朗坤

#include <unistd.h> // 头文件int usleep(useconds_t usec); // 函数原型usec -- 毫秒。整数。最大允许值:小于 1000000返回 0 -- 表示调用执行成功,1 -- 失败。
打开App,查看更多内容
随时随地看视频慕课网APP