Chinaunix

标题: C的stdout buffer问题 [打印本页]

作者: xuphys    时间: 2011-05-23 14:03
标题: C的stdout buffer问题
对于一个用C写的程序(假定为a.out),终端下这样运行:

$ ./a.out

输出是line buffered,即遇到换行符后终端才被写入。

现在这样运行:

$ ./a.out | tee tmp.txt

输出是block buffered,如果程序很长时间不能退出而且输出内容较少的话,终端下不显示任何字符。

现在我有一个进程,如何改变子进程的这一行为?
对本进程,C中有setvbuf函数处理这个问题。

谢谢
作者: axiali1314    时间: 2011-05-24 14:12
可以将bash的输出缓冲区类型改成行缓冲的




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2