【发布时间】:2016-07-27 22:36:10
【问题描述】:
不知何故,运行./program | tee /dev/null 似乎正在消耗它的输出。当它自己运行时,程序会打印一些文本,然后继续运行,同时通过 UDP 套接字进行通信。它产生了很多我想以过滤方式查看的日志消息,所以我尝试运行./program | grep -v "I dont wan't to see logs like this!" | tail -f,但它没有产生任何输出。我放弃了一点,决定只将tee 输出到另一个文件,然后我可以用我的编辑器检查该文件,但结果是一个空文件。
有问题的程序是由学生编写的,因此问题可能出在其中。什么可能导致这种行为?我该如何纠正?
总结:
./program 打印 output 但 ./program | tee /dev/null 不打印任何内容。 ./program 的来源可能存在问题,但无论如何如何正确使用它?
【问题讨论】:
-
也许程序检测到stdout是否被重定向?或者它可能试图改变标准输出句柄的文件描述符?你有这个程序的源代码吗?