Updated: April 19, 2023 |
Associate a buffer with a stream
#include <stdio.h> int setvbuf( FILE *fp, char *buf, int mode, size_t size );
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The setvbuf() function associates a buffer with the stream designated by fp. If you want to call setvbuf(), you must call it after opening the stream, but before doing any reading, writing, or seeking.
If buf isn't NULL, the buffer it points to is used instead of an automatically allocated buffer.
#include <stdio.h> #include <stdlib.h> int main( void ) { char *buf; FILE *fp; fp = fopen( "file", "r" ); buf = malloc( 1024 ); setvbuf( fp, buf, _IOFBF, 1024 ); /* work with fp */ ... fclose( fp ); /* This is OUR buffer, so we have * to free it. Do that AFTER * you've closed the file. */ free( buf ); return EXIT_SUCCESS; }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |