今天看源码,看到一句
setvbuf(stdout,
NULL, _IONBF,
0);
关于setvbuf接口,linux系统编程手册P195有介绍。其中对_IONBF这个参数,做以下解释:
不对IO进行缓冲,每个stdio库函数立刻调用write()或read(),并且忽略buf和size。可以分别指定两个参数为NULL或者0.如stderr,可以保证错误立即输出。
看得一脸懵逼。
其实意思就是,这个参数配合NULL,0使用,可以让指定的缓冲区不缓冲,有数据就立刻输出。
具体例子:http://blog.csdn.net/lkkey80/article/details/52196058