C的stdout buffer问题
对于一个用C写的程序(假定为a.out),终端下这样运行:
$ ./a.out
输出是line buffered,即遇到换行符后终端才被写入。
现在这样运行:
$ ./a.out | tee tmp.txt
输出是block buffered,如果程序很长时间不能退出而且输出内容较少的话,终端下不显示任何字符。
现在我有一个进程,如何改变子进程的这一行为?
对本进程,C中有setvbuf函数处理这个问题。
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
可以将bash的输出缓冲区类型改成行缓冲的