Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ setbuf(3S) — Amiga System V Release 4 Version 2.1

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fopen(3S)

getc(3S)

malloc(3C)

putc(3S)

stdio(3S)



setbuf(3S)           STANDARD I/O FUNCTIONS            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 [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 limititation 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 speci-
                 fies 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.

NOTES
     A common source of error is allocating buffer  space  as  an



          Last change: C Programming Language Utilities         1





setbuf(3S)           STANDARD I/O FUNCTIONS            setbuf(3S)



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
















































          Last change: C Programming Language Utilities         2



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