2.12.3.18 setvbuf
Declaration:
int setvbuf(FILE *
stream, char *
buffer, int
mode, size_t
size);
Defines how a stream should be buffered. This should be called after the stream has been opened but before any operation has been done on the stream. The argument mode defines how the stream should be buffered as follows:
_IOFBF | Input and output is fully buffered. If the buffer is empty, an input operation attempts to fill the buffer. On output the buffer will be completely filled before any information is written to the file (or the stream is closed). |
_IOLBF | Input and output is line buffered. If the buffer is empty, an input operation attempts to fill the buffer. On output the buffer will be flushed whenever a newline character is written. |
_IONBF | Input and output is not buffered. No buffering is performed. |
The argument buffer points to an array to be used as the buffer. If buffer is a null pointer, then setvbuf
uses malloc
to create its own buffer.
The argument size determines the size of the array.
On success zero is returned. On error a nonzero value is returned.