Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ setvbuf(3S) — svr4 — mips UMIPS RISC/os 5.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fopen(3S)

getc(3S)

malloc(3C)

putc(3S)

stdio(3S)



SETBUF(3S-SVR4)     RISC/os Reference Manual      SETBUF(3S-SVR4)



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 [see intro(3)] has been
     opened but before it is read or written.  It causes the
     array pointed to by buf to be used instead of an automati-
     cally allocated buffer.  If buf is the NULL pointer
     input/output will be completely unbuffered.

     While there is no limitation on the size of the buffer, 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.  Legal values for type (defined in
     stdio.h) are:

     _IOFBF      causes input/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/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 allocated
     buffer.  size specifies the size of the buffer to be used.
     If input/output is unbuffered, buf and size are ignored.

     For a further discussion of buffering, see stdio(3S).

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

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





                        Printed 11/19/92                   Page 1





SETBUF(3S-SVR4)     RISC/os Reference Manual      SETBUF(3S-SVR4)



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.

     Parts of buf will be used for internal bookkeeping of the
     stream and, therefore, buf will contain less than size bytes
     when full.  It is recommended that the automatically allo-
     cated buffer is used when using setvbuf.














































 Page 2                 Printed 11/19/92



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