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







NAME

     putc  -  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 not available from C]



     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 format of the buffer is:



     iobuf:  .=.+2           / file descriptor

             .=.+2           / characters unused in buffer

             .=.+2           / ptr to next free character

             .=.+512.        / buffer



     Or in C,



     struct buf {

             int fildes;

             int nunused;

             char *nxtfree;

             char buff[512];

     };



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

     failed  (from  C,  returns  -1);  none of the other routines

     returns error information.



     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

     error bit possible on fcreat call.



BUGS