我需要能够运行一段代码x秒钟,然后停止。
while(timeElapsed < setTime){
do whatever
}
如果有人好奇,我们要在这里做的是让程序通过用户设置的一定时间通过Modbus轮询指示器。因此,我有一个输入字段供用户设置轮询功能应在循环中运行的时间。顺便说一下,这将在树莓派上完成。
答案 0 :(得分:3)
一种方法是包括time.h标头并使用difftime函数。它将实现检查是否经过的时间达到设置的时间。
示例:
#include <time.h>
void func(float delayInSeconds) {
time_t startTime;
time_t now;
float elapsedTime;
float setTime = delayInSeconds;
time(&startTime);
while (elapsedTime < setTime) {
//do something...
now = time(NULL);
elapsedTime = difftime(now, startTime);
}
}