|
|
1.1 ! root 1: /* Copyright (c) 1979 Regents of the University of California */ ! 2: ! 3: static char sccsid[] = "@(#)READ4.c 1.8 10/28/83"; ! 4: ! 5: #include "h00vars.h" ! 6: #include <errno.h> ! 7: extern int errno; ! 8: ! 9: long ! 10: READ4(curfile) ! 11: ! 12: register struct iorec *curfile; ! 13: { ! 14: long data; ! 15: int retval; ! 16: ! 17: if (curfile->funit & FWRITE) { ! 18: ERROR("%s: Attempt to read, but open for writing\n", ! 19: curfile->pfname); ! 20: return; ! 21: } ! 22: UNSYNC(curfile); ! 23: errno = 0; ! 24: retval = fscanf(curfile->fbuf, "%ld", &data); ! 25: if (retval == EOF) { ! 26: ERROR("%s: Tried to read past end of file\n", curfile->pfname); ! 27: return; ! 28: } ! 29: if (retval == 0) { ! 30: ERROR("%s: Bad data found on integer read\n", curfile->pfname); ! 31: return; ! 32: } ! 33: if (errno == ERANGE) { ! 34: ERROR("%s: Overflow on integer read\n", curfile->pfname); ! 35: return; ! 36: } ! 37: if (errno != 0) { ! 38: PERROR("Error encountered on integer read ", curfile->pfname); ! 39: return; ! 40: } ! 41: return data; ! 42: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.