c - Linux中C语言中Printf()在 "while(1)"循环之前不执行

标签 c linux gcc

我注意到以下代码有些奇怪。

int main()
{
     printf("Test");      // Section 1 do something here....

     while(1)
     {
           ;
     }
}

第 1 部分应该首先执行,然后程序就会陷入 while 循环。 但结果是“Test”没有打印出来,而是卡在了while循环中。我想知道为什么第 1 节中的代码没有被执行?

我在Ubuntu 14.04 LTS上运行了代码(使用默认的gcc编译器编译)

最佳答案

stdout 流是缓冲的,因此它只会在到达换行符后显示缓冲区中的内容。添加:

fflush(stdout);

行后:

printf("Test");

另请参阅this link寻找其他替代方案。

关于c - Linux中C语言中Printf()在 "while(1)"循环之前不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42649873/

相关文章:

c - execvp(grep) 后失去控制

c - 快速逐字节替换 if

iphone - 我在作业中得到不兼容的类型?

linux - 如何使用基于linux的平台在windows硬盘上构建linux共享库?

c++ - gcc-4.8 中的这段代码发生了什么?

c++ -/usr/bin/ld :/tmp/cc9zxSDP. o: undefined symbol 引用

在特定目录中创建零字节文件

java - 如何从共享库调用函数

linux - 64 位 Linux 中的段错误 movsb nasm

c - 使用 gcc 预处理器为 #include 定义文件名