摘要: linux下面每个进程会维护一个printf/scanf的缓冲区。 以printf为例,调用printf的时候,当缓冲区满,或者带有'\n'时,才会输出(当然程序退出是即使没有这两个条件也输出)。 除此之外,当遇到scanf调用时,也会先刷新缓冲区,printf调用中的内容就会被输出。 最后,可以调用fflush函数强制刷新缓冲区来输出缓冲区中的内容。 在多线程程序中尤其值得注意,fork时,缓冲区也被fork,要是之前缓冲区没有被刷新过的话,缓冲区中的内容依然存在,在子进程中再次调用printf就会出现自己不想要的输出。 阅读全文
posted @ 2012-11-27 16:48 風之痕 阅读(1130) 评论(0) 推荐(0) 编辑