【问题标题】:Flag for gcc to turn off buffering of stdout?标志 gcc 关闭标准输出的缓冲?
【发布时间】:2026-02-06 07:00:02
【问题描述】:

gccg++ 是否有任何标志可以关闭 stdout 的缓冲? 就像python -u 在python 中关闭stdoutstdinstderr 的缓冲。

【问题讨论】:

  • 不是 gcc 标志,但请参见 How to turn off buffering of stdout in C
  • 我想通过 gcc 而不是通过 c 关闭缓冲。
  • @c4rbon,这不是编译器的工作。这是你的代码的工作。
  • @Mat,我想如果它在 python 中可用,它可能在 gcc 中可用。
  • @c4rbon:你比较苹果和橘子。

标签: gcc


【解决方案1】:

GCC 作为编译器,只生成一个可执行文件。它没有关于缓冲甚至流的真正知识。只有 C 运行时知道您的 stdoutstderr 是什么。您需要在运行时告诉 C 运行时禁用缓冲。

相比之下,Python 运行时是一个解释器。作为解释器,它可以设置您的流,并且可以根据您的要求禁用缓冲。

【讨论】: