setbuf - assign buffering to a stream
#include <stdio.h>
void setbuf(FILE *restrict stream, char *restrict buf);
[CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of IEEE Std 1003.1-2001 defers to the ISO C standard.Except that it returns no value, the function call:
setbuf(stream, buf)shall be equivalent to:
setvbuf(stream, buf, _IOFBF, BUFSIZ)if buf is not a null pointer, or to:
setvbuf(stream, buf, _IONBF, BUFSIZ)if buf is a null pointer.
The setbuf() function shall not return a value.
No errors are defined.
None.
A common source of error is allocating buffer space as an "automatic" variable in a code block, and then failing to close the stream in the same block.
With setbuf(), allocating a buffer of BUFSIZ bytes does not necessarily imply that all of BUFSIZ bytes are used for the buffer area.
None.
None.
fopen() , setvbuf() , the Base Definitions volume of IEEE Std 1003.1-2001, <stdio.h>
First released in Issue 1. Derived from Issue 1 of the SVID.
The prototype for setbuf() is updated for alignment with the ISO/IEC 9899:1999 standard.