|
|
DataMuseum.dkPresents historical artifacts from the history of: Commodore CBM-900 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Commodore CBM-900 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 543 (0x21f)
Types: TextFile
Notes: UNIX file
Names: »fread.c«
└─⟦f27320a65⟧ Bits:30001972 Commodore 900 hard disk image with partial source code
└─⟦f4b8d8c84⟧ UNIX Filesystem
└─⟦this⟧ »libc/stdio/fread.c«
/*
* Standard I/O Library
* Read nitems of size from file fp
*/
#include <stdio.h>
int
fread(bp, size, nitems, fp)
register char *bp;
int size;
int nitems;
register FILE *fp;
{
unsigned int nb = size*nitems;
register int c;
if (fp->_ff&_FUNGOT) {
*bp++ = (*fp->_gt)(fp);
nb--;
}
if (fp->_bp!=NULL || !(fp->_ff&_FSTBUF))
for (; nb && (c=getc(fp))!=EOF; nb--)
*bp++ = c;
else if ((c=read(fileno(fp), bp, nb)) > 0)
nb -= c;
else if (c == 0)
fp->_ff |= _FEOF;
else
fp->_ff |= _FERR;
return ((size*nitems-nb)/size);
}