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. ExampleFILE *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 Alsosetvbuf( ), fflush( ) |