如何从进程中获取实时、非阻塞的输出
How to get live, non-blocking output from process
我希望能够捕获我没有源代码的 cli 程序的输出(在它终止之前)。
我发现的所有内容都是通过管道完成的,据我所知,管道只会在程序刷新或退出时发送输出。
我在 Codeproject 上找到的一种解决方案仅适用于 Windows.
您可以使用 stdbuf
强制应用程序的 stdout
和 stderr
进行行缓冲,即使重定向到管道或文件时也是如此:
stdbuf --output=L --error=L <program> | ...
我希望能够捕获我没有源代码的 cli 程序的输出(在它终止之前)。
我发现的所有内容都是通过管道完成的,据我所知,管道只会在程序刷新或退出时发送输出。 我在 Codeproject 上找到的一种解决方案仅适用于 Windows.
您可以使用 stdbuf
强制应用程序的 stdout
和 stderr
进行行缓冲,即使重定向到管道或文件时也是如此:
stdbuf --output=L --error=L <program> | ...