gpt4 book ai didi

c - 为什么这个小的 C 程序没有按预期运行?

转载 作者:太空宇宙 更新时间:2023-11-04 00:18:40 25 4
gpt4 key购买 nike

我有一个使用 difftime 的小 C 程序。真的很奇怪,它在 10 秒后没有打印出该行。

但是,如果我取消注释 sleep 行,那么它就可以工作。

知道为什么会这样吗?

/* difftime example */
#include <stdio.h> /* printf */
#include <time.h> /* time_t, struct tm, difftime, time, mktime */

int main ()
{
time_t start, stop;

start = time(NULL);
for(; /* some condition that takes forever to meet */;) {
// do stuff that apparently takes forever.
stop = time(NULL);
double diff = difftime(stop, start);
//sleep (1);
if (diff >= 10) {
printf("10 seconds passed...");
start = time(NULL);
}
}
}

顺便说一句:代码编译良好,我在 Raspberry Pi 上运行它。3.6.11+ #474 PREEMPT Thu Jun 13 17:14:42 BST 2013 armv6l GNU/Linux

最佳答案

控制台 IO 可能是行缓冲的。尝试冲洗

printf("10 seconds passed...");
fflush(stdout)

或添加换行符\n

printf("10 seconds passed...\n");

当对 sleep 的调用未被注释时,我无法重现任何行为变化。

关于c - 为什么这个小的 C 程序没有按预期运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18492023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com