[OpenBSD]

Manual Page Search Parameters

SETBUF(3) Library Functions Manual SETBUF(3)

NAME

setbuf, setbuffer, setlinebufstream buffering operations

SYNOPSIS

#include <stdio.h>
void
setbuf(FILE *stream, char *buf);
void
setbuffer(FILE *stream, char *buf, size_t size);
int
setlinebuf(FILE *stream);

DESCRIPTION

These interfaces are obsoleted by setvbuf(3).
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);

RETURN VALUES

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.

ERRORS

The setbuf(), setbuffer(), and setlinebuf() functions will fail if:
 
 
[EBADF]
The stream specified is not associated with a valid file descriptor.

SEE ALSO

fclose(3), fopen(3), fread(3), malloc(3), printf(3), puts(3), setvbuf(3)

STANDARDS

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.

HISTORY

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.

BUGS

The setbuf() function usually uses a suboptimal buffer size and should be avoided.
November 25, 2014 OpenBSD-current