PUTC(III)                    6/12/72                    PUTC(III)







NAME

     putc, putw, fcreat, fflush  -  buffered output



SYNOPSIS

     mov     $filename,r0

     jsr     r5,fcreat; iobuf



     fcreat(file, iobuf)

     char *file;

     struct buf *iobuf;



     (get byte in r0)

     jsr     r5,putc; iobuf



     putc(c, iobuf)

     int c;

     struct buf *iobuf;



     (get word in r0)

     jsr     r5,putw; iobuf



     putw(w, iobuf);

     int w;

     struct buf *iobuf;



     jsr     r5,flush; iobuf



     fflush(iobuf)

     struct buf *iobuf;



DESCRIPTION

     Fcreat creates the given file (mode 666)  and  sets  up  the

     buffer iobuf (size 518 bytes); putc and putw write a byte or

     word respectively onto the file; flush forces  the  contents

     of  the  buffer  to be written, but does not close the file.

     The structure of the buffer is:

     struct buf {

             int fildes;     /* File descriptor */

             int nunused;    /* Remaining slots */

             char *xfree;    /* Ptr to next free slot */

             char buff[512]; /* The buffer */

     };



     Before terminating, a program should call flush to force out

     the last of the output (fflush from C).



     The user must supply iobuf, which should  begin  on  a  word

     boundary.



     To write a new file using the same buffer,  it  suffices  to

     call [f]flush, close the file, and call fcreat again.



SEE ALSO

     creat (II), write (II), getc (III)



DIAGNOSTICS

     Fcreat sets the error  bit  (c-bit)  if  the  file  creation

     failed  (from  C,  returns  -1).  Putc and putw return their

     character (word)  argument.   In  all  calls  errno  is  set

     appropriately  to  0  or  to  a  system  error  number.  See

     introduction (II).



BUGS