From 7e0f021a9aec35fd8e6725e87e3313b101d26f5e Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Sun, 27 Jan 2008 11:37:44 +0100 Subject: Initial import (2.0.2-6) --- reference/C/MAN/setbuf.htm | 167 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 reference/C/MAN/setbuf.htm (limited to 'reference/C/MAN/setbuf.htm') diff --git a/reference/C/MAN/setbuf.htm b/reference/C/MAN/setbuf.htm new file mode 100644 index 0000000..fc4ddeb --- /dev/null +++ b/reference/C/MAN/setbuf.htm @@ -0,0 +1,167 @@ +setbuf + +
+
+
+
+
+

SETBUF(3) Linux Programmer's Manual SETBUF(3) +

+ +

NAME +

setbuf, setbuffer, setlinebuf, setvbuf - stream buffering + operations + +

SYNOPSIS +

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

DESCRIPTION +

The three types of buffering available are unbuffered, + block buffered, and line buffered. When an output stream + is unbuffered, information appears on the destination file + or terminal as soon as written; when it is block buffered + many characters are saved up and written as a block; when + it is line buffered characters are saved up until a new- + line is output or input is read from any stream attached + to a terminal device (typically stdin). The function + fflush(3) may be used to force the block out early. (See + fclose(3).) Normally all files are block buffered. When + the first I/O operation occurs on a file, malloc(3) is + called, and a buffer is obtained. If a stream refers to a + terminal (as stdout normally does) it is line buffered. + The standard error stream stderr is always unbuffered. + + The setvbuf function may be used at any time on any open + stream to change its buffer. The mode parameter must be + one of the following three macros: + + _IONBF unbuffered + + _IOLBF line buffered + + _IOFBF fully buffered + + Except for unbuffered files, the buf argument should point + to a buffer at least size bytes long; this buffer will be + used instead of the current buffer. If the argument buf + is NULL, only the mode is affected; a new buffer will be + allocated on the next read or write operation. The + setvbuf function may be used at any time, but can only + change the mode of a stream when it is not ``active'': + that is, before any I/O, or immediately after a call to + fflush. + + The other three calls are, in effect, simply aliases for + calls to setvbuf. The setbuf function is exactly equiva- + lent to the call + + setvbuf(stream, buf, buf _IOFBF : _IONBF, + + + +

BSD MANPAGE 29 November 1993 1 +

+ + + + +

SETBUF(3) Linux Programmer's Manual SETBUF(3) +

+ + 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, (char *)NULL, _IOLBF, 0); + +
+
+

SEE ALSO +

+fopen, +fclose, +fread, +malloc, +puts, +printf, +

+
+

STANDARDS +

The setbuf and setvbuf functions conform to ANSI + C3.159-1989 (``ANSI C''). + +

BUGS +

The setbuffer and setlinebuf functions are not portable to + versions of BSD before 4.2BSD, and may not be available + under Linux. On 4.2BSD and 4.3BSD systems, setbuf always + uses a suboptimal buffer size and should be avoided. + + You must make sure that both buf and the space it points + to still exist by the time stream is closed, which also + happens at program termination. + + For example, the following is illegal: + + #include <stdio.h> + int main() + { + char buf[BUFSIZ]; + setbuf(stdin, buf); + printf("Hello, world!\n"); + return 0; + } + + + + + + + + + + + + + + + + + + + + +

BSD MANPAGE 29 November 1993 2 +

+ +
+

+


+

+

+ + + + +
+Top + +Master Index + +Keywords + +Functions +
+
+

+


+ +This manual page was brought to you by mjl_man V-2.0 -- cgit v1.2.3-54-g00ecf