Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ setbuf(3S) — sys5 — Apollo Domain/IX SR9.5

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fopen(3S)

getc(3S)

malloc(3C)

putc(3S)

stdio(3S)



SETBUF(3S)               DOMAIN/IX SYS5                SETBUF(3S)



NAME
     setbuf, setvbuf - assign buffering to a stream

USAGE
     #include <stdio.h>

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

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


DESCRIPTION
     Setbuf may be used after a stream has been opened, but
     before it is read or written.  It causes the specified
     stream to buffer input or output in the specified buf rather
     than in an automatically allocated buffer.  If buf is the
     NULL pointer, input and output will be completely unbuf-
     fered.

     The constant BUFSIZ, defined in the <stdio.h> header file,
     specifies how big an array is needed:

     Setvbuf may be used after a stream has been opened but
     before it is read or written.  Type determines how stream
     will be buffered.  Legal values for type (defined in
     <stdio.h>) are:

          _IOFBF    causes input and output to be fully buffered.

          _IOLBF    causes output to be line buffered; the buffer
                    will be flushed when a newline is written,
                    the buffer is full, or input is requested.

          _IONBF    causes input and output to be completely
                    unbuffered.  If buf is not the NULL pointer,
                    the array it points to will be used for
                    buffering, instead of an automatically allo-
                    cated buffer.  Size specifies the size of the
                    buffer to be used.  We recommend using the
                    constant BUFSIZ in <stdio.h> for size.  If
                    input and output is unbuffered, buf and size
                    are ignored.  By default, output to a termi-
                    nal is line buffered and all other input and
                    output is fully buffered.




Printed 12/4/86                                          SETBUF-1







SETBUF(3S)               DOMAIN/IX SYS5                SETBUF(3S)



NOTES
     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.

DIAGNOSTICS
     If an illegal value for type or size is provided, setvbuf
     returns a non-zero value. Otherwise, it returns zero.

RELATED INFORMATION
     fopen(3S), getc(3S), malloc(3C), putc(3S), stdio(3S)










































SETBUF-2                                          Printed 12/4/86





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