![]() |
![]() |
![]() |
Associate a buffer with a stream
#include <stdio.h> int setvbuf( FILE *fp, char *buf, int mode, size_t size );
libc
The setvbuf() function associates a buffer with the stream designated by fp. setvbuf() must be called after opening the stream, and before any reading or writing. The mode determines how the stream is buffered:
If buf isn't NULL, the buffer it points to is used instead of an automatically allocated buffer. The size argument specifies the size of the 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 |
![]() |
![]() |
![]() |