【发布时间】:2011-08-22 19:58:50
【问题描述】:
我可以编写一个应用程序,将所有输入从 cin 复制到一个容器(比如说一个集合)中,然后将容器内容打印回标准输出。在集合的情况下,它们将被排序。
如果我这样做并将其编译为 mysort,我可以进入 Unix 并将程序用作管道的一部分。
cat myfile.txt | mysort
输出将是 myfile 中排序后的单词。
在这种情况下,直到 cat-ing myfile.txt 的所有输出都通过管道传输到它之后,mysort 才能真正做任何事情。我怎样才能做类似于动态生成的过程数据的事情? (忽略排序;我知道要排序,我必须同时拥有所有数据才能对其进行排序)。
例如,如果我运行一个巨大的程序(我们称它为 hugeprog)并想在该大型程序运行时分析它的 stdout 和 stderr,我将如何处理分析器程序(myanalyzer)的输入?
我想在程序运行时执行此分析,如下所示:
hugeprog 2>&1 | myanalyzer
【问题讨论】: