SETBUF(3) Library Functions Manual SETBUF(3)

setbufassign buffering to a stream

#include <stdio.h>

void setbuf(FILE *restrict stream, char *restrict buf);

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 (“POSIX.1”) 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(3) , setvbuf(3) , the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <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 (“ISO C99”) standard.

footer end

December 6, 2001 posix.fail