|
|
researchv10 Dan Cross
.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
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.