如何从进程中获取实时、非阻塞的输出

How to get live, non-blocking output from process

我希望能够捕获我没有源代码的 cli 程序的输出(在它终止之前)。

我发现的所有内容都是通过管道完成的,据我所知,管道只会在程序刷新或退出时发送输出。 我在 Codeproject 上找到的一种解决方案仅适用于 Windows.

您可以使用 stdbuf 强制应用程序的 stdoutstderr 进行行缓冲,即使重定向到管道或文件时也是如此:

stdbuf --output=L --error=L <program> | ...