Originální popis anglicky:
setvbuf - assign buffering to a stream
Návod, kniha: POSIX Programmer's Manual
#include <stdio.h>
int setvbuf(FILE *restrict
stream, char
*restrict buf, int
type,
size_t
size );
The
setvbuf() function may be used after the stream pointed to by
stream is associated with an open file but before any other operation
(other than an unsuccessful call to
setvbuf()) is performed on the
stream. The argument
type determines how
stream shall be
buffered, as follows:
- *
- {_IOFBF} shall cause input/output to be fully
buffered.
- *
- {_IOLBF} shall cause input/output to be line buffered.
- *
- {_IONBF} shall cause input/output to be unbuffered.
If
buf is not a null pointer, the array it points to may be used instead
of a buffer allocated by
setvbuf() and the argument
size
specifies the size of the array; otherwise,
size may determine the size
of a buffer allocated by the
setvbuf() function. The contents of the
array at any time are unspecified.
For information about streams, see
Standard I/O Streams .
Upon successful completion,
setvbuf() shall return 0. Otherwise, it shall
return a non-zero value if an invalid value is given for
type or if the
request cannot be honored, and may set
errno to indicate the
error.
The
setvbuf() function may fail if:
- EBADF
- The file descriptor underlying stream is not valid.
The following sections are informative.
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
setvbuf(), allocating a buffer of
size bytes does not
necessarily imply that all of
size bytes are used for the buffer area.
Applications should note that many implementations only provide line buffering
on input from terminal devices.
None.
None.
Standard I/O Streams ,
fopen() ,
setbuf() , the Base
Definitions volume of IEEE Std 1003.1-2001,
<stdio.h>
Portions of this text are reprinted and reproduced in electronic form from IEEE
Std 1003.1, 2003 Edition, Standard for Information Technology -- Portable
Operating System Interface (POSIX), The Open Group Base Specifications Issue
6, Copyright (C) 2001-2003 by the Institute of Electrical and Electronics
Engineers, Inc and The Open Group. In the event of any discrepancy between
this version and the original IEEE and The Open Group Standard, the original
IEEE and The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.opengroup.org/unix/online.html
.