.th PUTC III 6/12/72 .sh NAME putc \*- buffered output .sh SYNOPSIS .ft B .nf mov $filename,r0 jsr r5,fcreat; iobuf .s3 fcreat(file, iobuf) char *file; struct buf *iobuf; .s3 .ft R (get byte in r0) .ft B jsr r5,putc; iobuf .s3 putc(c, iobuf) int c; struct buf *iobuf; .s3 .ft R (get word in r0) .ft B jsr r5,putw; iobuf .s3 [putw not available from C] .s3 jsr r5,flush; iobuf .s3 fflush(iobuf) struct buf *iobuf; .fi .ft R .sh DESCRIPTION .it Fcreat creates the given file (mode 666) and sets up the buffer .it iobuf (size 518 bytes); .it putc and .it putw write a byte or word respectively onto the file; .it flush forces the contents of the buffer to be written, but does not close the file. The format of the buffer is: .s3 .nf .ft B iobuf: .=.+2 / file descriptor .=.+2 / characters unused in buffer .=.+2 / ptr to next free character .=.+512. / buffer .ft R .s3 Or in C, .s3 .ft B .nf struct buf { int fildes; int nunused; char *nxtfree; char buff[512]; }; .ft R .fi .s3 .it Fcreat sets the error bit (c-bit) if the file creation failed (from C, returns \*-1); none of the other routines returns error information. .s3 Before terminating, a program should call .it flush to force out the last of the output .it (fflush from C). .s3 The user must supply .it iobuf, which should begin on a word boundary. .s3 To write a new file using the same buffer, it suffices to call .it [f]flush, close the file, and call .it fcreat again. .sh "SEE ALSO" creat(II), write(II), getc(III) .sh DIAGNOSTICS error bit possible on .it fcreat call. .sh BUGS