C语言中的缓冲输出

     程序的输出方式有两种:一种是及时输出,另一种是先缓存起来,然后大块输出。前者往往给系统造成很大的负担,影响程序性能。后者的实现,C语言通过函数 void setbuf ( FILE * stream, char * buffer );实现。此函数的功能是通知输入输出函数库中的函数,所有写入到stream的输出都应该使用buffer作为输出缓冲区,直到buffer缓冲区被填满,或者程序员显式调用int fflush ( FILE * stream );,才真正执行写入操作。

例子:

#include <stdio.h>



int main ()

{

  char buffer[BUFSIZ];

  FILE *pFile1, *pFile2;



  pFile1=fopen ("myfile.txt","w");

  pFile2=fopen ("myfile2.txt","a");



  setbuf ( pFile1 , buffer );

  fputs ("This is sent to a buffered stream",pFile1);

  fflush (pFile1);



  setbuf ( pFile2 , NULL );

  fputs ("This is sent to an unbuffered stream",pFile2);



  fclose (pFile1);

  fclose (pFile2);



  return 0;

}

你可能感兴趣的:(C语言)