Shell - 将程序输出重定向到文件无法正常工作

Shell - 将程序输出重定向到文件无法正常工作

我正在尝试将程序的输出重定向到文件。程序时不时地在屏幕上打印几行,并继续这样进行,直到终止。当它终止时,打印的行数将达到数千行。

当在没有任何重定向指令的情况下执行程序时,它会按应有的方式在屏幕上打印所有信息。然而,当尝试使用 >、或 1> 或 2> 或其他几种可能性时,会发生以下两种情况之一。输出文件要么完全为空,要么只包含前 30 行左右(这足以填满一页)。我还尝试使用“ | cat >”进行重定向,但再次没有任何反应。

问题的根源可能是什么?我正在使用 ubuntu 并从终端执行程序。该程序用 C++ 编译,并使用“cout”打印文本。

我尝试使用但没有成功的重定向示例。

  1. ./testProgram > 输出.txt
  2. ./testProgram 1> 输出.txt
  3. ./testProgram 2> 输出.txt
  4. ./testProgram &> 输出.txt
  5. ./testProgram > 输出.txt 2>&1
  6. ./测试程序 |猫 > 输出.txt
  7. 上面用 >> 代替 > 的所有变体也有同样的问题

Obs:由于计算可能需要几天的时间,所以我时不时地使用 cat output.txt 查看该文件。尽管如此,如上所述,文件中仅写入了第一页左右的文本,这就是我所能看到的全部内容。由于此文本量相当于执行程序几秒钟,因此读取文件似乎不是问题的原因。

相关内容