fflush(stdout)用处简单介绍

来源:互联网 发布:java最新开发面试题 编辑:程序博客网 时间:2024/05/20 11:48

#include<stdlib.h>
#include<stdio.h>

int sum;//sum is a global variable

main()
{
 int i;//i is a local variable

 sum = 0;
 for(i = 1;i <= 5 ;i++) //iterate i from 1 to 5
 {
  printf("The value of i is %d/n",i);
  fflush(stdout);//flush the buffer
  sum += i;
 }
 printf("The sum is %d/n",sum);
 exit(0);//terminate the program

 

这个简单的c程序中用到了fflush(stdout),目的是清空缓冲,强制结果马上显示到屏幕上。

一般写c程序的时候,我都只用了printf(……),加不加fflush(stdout)好像没什么区别,都是立即就显示出结果了,但是用fork()的时候效果就不一样了。

#include<stdio.h>
#include<unistd.h>
int main()
{
        printf("hello");
        fflush(stdout);
        fork();
        return 0;
}

 

调用printf(……)时,输出结果一般会被标准库缓存起来,不一定能及时写到输出设备上,但是fflush(stdout)能强制把缓存内容输出。


原创粉丝点击