printf函数缓冲区问题

来源:互联网 发布:时代网络大厦 美食 编辑:程序博客网 时间:2024/05/17 23:52

printf是一个行缓冲函数,先写到缓冲区,满足条件后,才将缓冲区刷到对应文件中,刷缓冲区的条件如下:

1.缓冲区填满2.写入的字符中有‘\n’ '\r'3.调用fflush手动刷新缓冲区4.调用scanf等要从缓冲区中读取数据时,也会将缓冲区内的数据刷新

在多线程程序中尤其值得注意,fork时,缓冲区也被fork,要是之前缓冲区没有被刷新过的话,缓冲区中的内容依然存在,在子进程中再次调用printf就会出现自己不想要的输出。

相关链接:

  • http://blog.csdn.net/skyflying2012/article/details/10044035
  • http://blog.csdn.net/shanshanpt/article/details/7385649
0 0
原创粉丝点击