Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

malloc(3C)

fopen(3S)

getc(3S)

putc(3S)

stdio(3S)

stdio(5)

setbuf(3S)                                                       setbuf(3S)

NAME
     setbuf, setvbuf - assign buffering to a stream

SYNOPSIS
     #include <stdio.h>

     void setbuf(FILE *stream, char *buf);

     int setvbuf(FILE *stream, char *buf, int type, sizet size);

DESCRIPTION
     setbuf() may be used after a stream has been opened but before it is
     read or written. It causes the array pointed to by buf to be used
     instead of an automatically allocated buffer. If buf is the null
     pointer, input/output will be completely unbuffered.

     The buffer size is not limited; however, the constant BUFSIZ, defined
     in the stdio.h header file, is typically a good buffer size:

          char buf[BUFSIZ];

     setvbuf() may be used after a stream has been opened but before it is
     read or written. type determines how stream will be buffered. The
     meanings of the permissible values for type (defined in stdio.h) are:

     IOFBF    Full buffering of the input/output

     IOLBF    Output is line buffered; the buffer will be flushed when a
               newline is written, the buffer is full, or input is
               requested.

     IONBF    Input/output is completely unbuffered.

     If buf is not the null pointer, the array it points to will be used
     for buffering, instead of an automatically allocated buffer. size
     specifies the size of the buffer to be used. If input/output is unbuf-
     fered, buf and size are ignored.

RESULT
     If an illegal value for type is provided, setbuf() returns a non-zero
     value. Otherwise, it returns zero.

NOTES
     A common source of error is allocating buffer space as an auto vari-
     able in a code block, and then failing to close the stream in the same
     block.

     Parts of buf will be used for internal bookkeeping of the stream and,
     therefore, buf will contain less than size bytes when full. When using
     setbuf(), the automatically allocated buffer should be used.





Page 1                       Reliant UNIX 5.44                Printed 11/98

setbuf(3S)                                                       setbuf(3S)

SEE ALSO
     malloc(3C), fopen(3S), getc(3S), putc(3S), stdio(3S), stdio(5).




















































Page 2                       Reliant UNIX 5.44                Printed 11/98

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026