Previous Page
Next Page


Sets up I/O buffering for an open file

#include <stdio.h>
void setbuf ( FILE * restrict fp , char * restrict buffer  );

The setbuf( ) function is similar to setvbuf( ), except that it has no return value, and no parameters to specify a buffering mode or a buffer size. The size of the buffer established by setbuf( ) is given by the value of the macro BUFSIZ. If the buffer argument is not a null pointer, the setbuf( ) call initiates fully buffered input and output for the specified file, so that the buffer is filled completely before data appears from the source or at the destination; this behavior corresponds to the buffering mode specified by the macro _IOFBF as the mode argument to setvbuf( ). If the buffer argument is a null pointer, setbuf( ) disables all I/O buffering for the file, so that data is written and read directly.

You may call the setbuf( ) function only after the file has been successfully opened, and before any file I/O operations have taken place.


FILE *fp = tmpfile( );
unsigned char *iobuffer = malloc( BUFSIZ );
if ( iobuffer != NULL )
  setbuf( fp, iobuffer );     // Make sure temporary file is buffered.
/* ... now write and read the temporary file as needed ... */

See Also

setvbuf( ), fflush( )

Previous Page
Next Page