参考内核打印限频功能
#include <stdio.h>
#include <time.h>
#define FALSE 0
#define TRUE 1
/*
* 日志限频:打印第一条,之后间隔intervalMs打印一条
*/
#define PRINT_LIMIT(intervalMs) \
static long int lastTime = 0; \
long int currTime = clock(); \
int printFlag = FALSE; \
if ((currTime > lastTime + intervalMs) || (lastTime == 0)) { \
lastTime = currTime; \
printFlag = TRUE; \
} \
if (printFlag)
int main()
{
int i;
for (i = 0; i < 100; i++) {
PRINT_LIMIT(10) {
printf("i: %d time: %lld ms\n", i, clock());
}
}
return 0;
}

该代码示例展示了如何在C语言中实现日志打印限频功能,确保每间隔指定毫秒数才打印一条日志,避免过度输出。程序使用静态变量记录上次打印时间,并通过比较当前时间和上次时间来控制打印频率。
1296

被折叠的 条评论
为什么被折叠?



