C语言 <stdio.h> fflush() 函数



  • 描述

    C库函数int fflush(FILE * stream)刷新流的输出缓冲区。
  • 声明

    以下是fflush()函数的声明。
    
    int fflush(FILE *stream)
    
    
    参数
    • stream - 这是指向标识流的FILE对象的指针。
  • 返回值

    成功时此函数返回零值。如果发生错误,则返回EOF并设置错误指示符(即feof)。
    示例
    以下示例显示fflush()函数的用法-
    
    #include<stdio.h>
    
    #include <string.h>
    
    int main () {
    
       char buff[1024];
       
       memset( buff, '\0', sizeof( buff ));
       
       fprintf(stdout, "Going to set full buffering on\n");
       setvbuf(stdout, buff, _IOFBF, 1024);
    
       fprintf(stdout, "This is tutorialspoint.com\n");
       fprintf(stdout, "This output will go into buff\n");
       fflush( stdout );
    
       fprintf(stdout, "and this will appear when programm\n");
       fprintf(stdout, "will come after sleeping 5 seconds\n");
       
       sleep(5);
       
       return(0);
    }
    
    
    让我们编译并运行上面的程序,它将产生以下结果。在这里,程序会一直缓冲到buff的输出中,直到它第一次遇到对fflush()的调用,之后它再次开始缓冲输出,最后休眠5秒钟。在程序出来之前,它将剩余的输出发送到STDOUT。
    
    Going to set full buffering on
    This is tutorialspoint.com
    This output will go into buff
    and this will appear when programm
    will come after sleeping 5 seconds