通常,stdout是行缓冲的。换句话说,只要您的printf参数以换行符结尾,您就可以立即打印该行。使用管道重定向时,这似乎不成立tee。
我有一个C ++程序,a它输出字符串,总是被\n终止stdout。
当它由它自己运行时(./a),所有内容都在正确的时间正确打印,正如预期的那样。但是,如果我将它传递给tee(./a | tee output.txt),它会在它退出之前不会打印任何内容,这会使使用的目的失效tee。
我知道我可以通过fflush(stdout)在C ++程序中的每次打印操作之后添加一个来修复它。但是有更清洁,更简单的方法吗?例如,是否有一个命令可以运行stdout,即使使用管道也会强行进行行缓冲?
qq_笑_17
MYYA
扬帆大鱼