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