1SETVBUF(3P)                POSIX Programmer's Manual               SETVBUF(3P)
2
3
4

PROLOG

6       This  manual  page is part of the POSIX Programmer's Manual.  The Linux
7       implementation of this interface may differ (consult the  corresponding
8       Linux  manual page for details of Linux behavior), or the interface may
9       not be implemented on Linux.
10

NAME

12       setvbuf - assign buffering to a stream
13

SYNOPSIS

15       #include <stdio.h>
16
17       int setvbuf(FILE *restrict stream, char *restrict buf, int type,
18              size_t size);
19
20

DESCRIPTION

22       The setvbuf() function may be used  after  the  stream  pointed  to  by
23       stream  is  associated with an open file but before any other operation
24       (other than an unsuccessful call to  setvbuf())  is  performed  on  the
25       stream.  The  argument type determines how stream shall be buffered, as
26       follows:
27
28        * {_IOFBF} shall cause input/output to be fully buffered.
29
30        * {_IOLBF} shall cause input/output to be line buffered.
31
32        * {_IONBF} shall cause input/output to be unbuffered.
33
34       If buf is not a null pointer, the  array  it  points  to  may  be  used
35       instead of a buffer allocated by setvbuf() and the argument size speciā€
36       fies the size of the array; otherwise, size may determine the size of a
37       buffer  allocated  by the setvbuf() function. The contents of the array
38       at any time are unspecified.
39
40       For information about streams, see Standard I/O Streams .
41

RETURN VALUE

43       Upon successful completion, setvbuf() shall  return  0.  Otherwise,  it
44       shall  return a non-zero value if an invalid value is given for type or
45       if the request cannot be honored,  and may set errno  to  indicate  the
46       error.
47

ERRORS

49       The setvbuf() function may fail if:
50
51       EBADF  The file descriptor underlying stream is not valid.
52
53
54       The following sections are informative.
55

EXAMPLES

57       None.
58

APPLICATION USAGE

60       A  common  source of error is allocating buffer space as an "automatic"
61       variable in a code block, and then failing to close the stream  in  the
62       same block.
63
64       With  setvbuf(), allocating a buffer of size bytes does not necessarily
65       imply that all of size bytes are used for the buffer area.
66
67       Applications should note that many implementations  only  provide  line
68       buffering on input from terminal devices.
69

RATIONALE

71       None.
72

FUTURE DIRECTIONS

74       None.
75

SEE ALSO

77       Standard I/O Streams, fopen(), setbuf(), the Base Definitions volume of
78       IEEE Std 1003.1-2001, <stdio.h>
79
81       Portions of this text are reprinted and reproduced in  electronic  form
82       from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
83       -- Portable Operating System Interface (POSIX),  The  Open  Group  Base
84       Specifications  Issue  6,  Copyright  (C) 2001-2003 by the Institute of
85       Electrical and Electronics Engineers, Inc and The Open  Group.  In  the
86       event of any discrepancy between this version and the original IEEE and
87       The Open Group Standard, the original IEEE and The Open Group  Standard
88       is  the  referee document. The original Standard can be obtained online
89       at http://www.opengroup.org/unix/online.html .
90
91
92
93IEEE/The Open Group                  2003                          SETVBUF(3P)
Impressum