SETBUF(3) | Library Functions Manual | SETBUF(3) |
setbuf
, setbuffer
,
setlinebuf
— stream
buffering operations
#include
<stdio.h>
void
setbuf
(FILE
*stream, char
*buf);
void
setbuffer
(FILE
*stream, char *buf,
size_t size);
int
setlinebuf
(FILE
*stream);
The
setbuf
(),
setbuffer
(), and
setlinebuf
() functions are used to modify the
buffering of a stream. These functions are provided for compatibility with
legacy code. New code should use
setvbuf(3) instead.
Except for the lack of a return value, the
setbuf
()
function is exactly equivalent to the call
setvbuf(stream, buf, buf ? _IOFBF :
_IONBF, BUFSIZ);
The
setbuffer
()
function is the same, except that the size of the buffer is up to the
caller, rather than being determined by the default
BUFSIZ
.
The
setlinebuf
()
function is exactly equivalent to the call:
setvbuf(stream, NULL, _IOLBF,
0);
Upon successful completion, the
setlinebuf
() function returns 0. If the request
cannot be honored, a non-zero value is returned, possibly setting
errno to indicate the error. The stream is not
modified in the error case.
The setbuf
(),
setbuffer
(), and
setlinebuf
() functions will fail if:
EBADF
]fclose(3), fopen(3), fread(3), malloc(3), printf(3), puts(3), setvbuf(3)
The setbuf
() function conforms to
ISO/IEC 9899:1999 (“ISO C99”).
The setbuffer
() and
setlinebuf
() functions are non-standard and should
not be used if portability is required.
The setbuf
() function first appeared in
Version 7 AT&T UNIX. The
setbuffer
() function first appeared in
4.1cBSD. The setlinebuf
()
function first appeared in 4.2BSD.
The setbuf
() function usually uses a
suboptimal buffer size and should be avoided.
November 25, 2014 | OpenBSD-6.1 |