c - 使用 sleep 后无法在定期间隔后显示输出

标签 c unix gcc sleep

以下是代码片段。

int main()
{
int i =0;
    while (i++ < 5)
    {
        // Do some heavy processing
        printf("i = %d\n", i);
        sleep(1);
    }
}

繁重的处理部分每 1 秒执行一次。 我也想在 1 秒后显示“i”,但它在完成后显示整个输出。我知道使用 while 并不是一种非常优雅的方式来做到这一点,但它似乎更容易。实现这一目标的最佳方式是什么?

我在 unix 中运行代码,gcc complier

最佳答案

你需要刷新标准输出;你可以使用 fflush(3) 这样做:

fflush(stdout);

你也可以在标准输出上完全禁用缓冲:

setbuf(stdout, NULL);

关于c - 使用 sleep 后无法在定期间隔后显示输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10083051/

相关文章:

c++ - windows中控制台输出流的编码

c - c中的格式说明符

ios - 如何修复此 YCrCb -> RBG 转换公式?

C++计算时间间隔

c++ - 在 SFINAE 中将 int 缩小为 bool,gcc 和 clang 之间的输出不同

c - 在 C 中读取和写入文件时遇到问题

unix - 有没有办法覆盖 Unix 终端查找命令?

c++ - C++ 命名空间在 Windows 和 linux 中的行为是否不同?

linux - fatal error : pthread. h:没有那个文件或目录

c - 除非 Haswell 指定,否则 GCC 编译前导零计数很差