SETBUF.3
上传用户:jnzhq888
上传日期:2007-01-18
资源大小:51694k
文件大小:3k
- SETBUF(3) Minix Programmer's Manual SETBUF(3)
- NAME
- setbuf, setvbuf - assign buffering to a stream
- SYNOPSIS
- #include <stdio.h>
- int setbuf(FILE *stream, char *buf)
- int setvbuf(FILE *stream, char *buf, int type, 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 newline is
- encountered or input is read from stdin. Fflush (see fclose(3)) may be
- used to force the block out early. Normally all files are block
- buffered. A buffer is obtained from malloc(3) upon the first getc or
- putc(3) on the file. If the standard stream stdout refers to a terminal
- it is line buffered. The standard stream stderr is always unbuffered.
- Setbuf is used after a stream has been opened but before it is read or
- written. The character array buf is used instead of an automatically
- allocated buffer. If buf is the constant pointer NULL, input/output will
- be completely unbuffered. A manifest constant BUFSIZ tells how big an
- array is needed:
- char buf[BUFSIZ];
- Setvbuf, an alternate form of setbuf, is used after a stream has been
- opened but before it is read or written. It has three uses, depending on
- the value of the type argument:
- setvbuf(stream, buf, _IOFBF, size)
- Causes input/output to be fully buffered using the character array
- buf whose size is determined by the size argument. If buf is the
- constant pointer NULL, then an automatically allocated buffer will
- be used.
- setvbuf(stream, buf, _IOLBF, size)
- Like above, except that output will be line buffered, i.e. the
- buffer will be flushed when a newline is written, the buffer is
- full, or input is requested.
- setvbuf(stream, buf, _IONBF, size)
- Causes input/output to be completely unbuffered. Buf and size are
- ignored.
- 4BSD May 12, 1986 1
- SETBUF(3) Minix Programmer's Manual SETBUF(3)
- A file can be changed between unbuffered, line buffered, or block
- buffered by using freopen (see fopen(3)) followed by the appropriate
- setvbuf call.
- SEE ALSO
- fopen(3), getc(3), putc(3), malloc(3), fclose(3), puts(3), printf(3),
- fread(3).
- 4BSD May 12, 1986 2