【问题标题】:alternative of fflush in C++在 C++ 中替代 fflush
【发布时间】:2019-02-20 09:07:21
【问题描述】:

我正在尝试寻找 fflush 的替代方法来清除 C++ 中的缓冲区。我正在编写一个 C++ 程序来分叉 3 个孩子并在 N 个循环中打印它们,但 O/P 的顺序不正确。尝试使用 cout

【问题讨论】:

  • 您绝对不能保证并发运行进程的输出顺序。由您的代码来实现它需要的任何机制,以便以正确的顺序从多个进程生成输出。如果它是一个单一的多线程程序,那么互斥锁是典型的方法。对于单独的进程,通常使用基于文件锁定的方法。并且刷新std::cout 将是一个组成部分,这也将涉及您将选择实施的任何进程间同步方法的实施。
  • 另外,fflush() 也不提供任何保证并发进程的输出顺序。所以 Sam 的 cmets 也适用于 C。

标签: c++ fork flush fflush endl


【解决方案1】:

这不是最佳的,但您可以使用 getchar(); cin.get();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 2012-07-21
    • 2021-07-22
    相关资源
    最近更新 更多