在 C 中有一个特定时间量的函数 运行

Have a function run for a specific amount of time in C

我需要能够 运行 一段代码 x 秒然后停止。像

while(timeElapsed < setTime){
     do whatever
}

如果有人好奇,我们在这里尝试做的是让程序通过 modbus 轮询一个指标一定秒数,由 user.So 我有一个输入字段对于用户设置轮询功能的时间应该是 运行 循环。顺便说一下,这将在 raspberry pi 上完成。

一种方法是包含 time.h header 并使用 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);
    }
}