home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / BDSC / BDSC-4 / BDSLIB.ARK / FREAD.C < prev    next >
Text File  |  1983-07-15  |  1KB  |  59 lines

  1. /*
  2.  * fread
  3.  * This function conforms as closely as possible to the function
  4.  * provided by the Version 7 U**X C Library. It reads at most
  5.  * `nitems' objects of size `size' from `stream' into memory at
  6.  * the location specified by `ptr'. It returns the number of
  7.  * items read or zero if error or end of file occurs.
  8.  * Last Edit 7/1/83
  9.  */
  10.  
  11. int
  12. fread(ptr, size, nitems, stream)
  13. char *ptr;
  14. int size, nitems;
  15. FILE *stream;
  16. {
  17.     int bytesread;
  18.     int c, i;
  19.  
  20.     for (i = 0; i < nitems; i++) {
  21.         for (bytesread = 0; bytesread < size; bytesread++) {
  22.             c = fgetc(stream);
  23.             if (feof(stream) || ferror(stream))
  24.                 return i;
  25.             *ptr++ = c;
  26.         }
  27.     }
  28.     return i;
  29. }
  30.  
  31. /*
  32.  * fwrite
  33.  * This function conforms as closely as possible to the function
  34.  * provided by the Version 7 U**X C Library. It writes at most
  35.  * `nitems' objects of size `size' from `stream' from memory at
  36.  * the location specified by `ptr'. It returns the number of
  37.  * items written or zero if error or end of file occurs.
  38.  * Last Edit 7/1/83
  39.  */
  40.  
  41. int
  42. fwrite(ptr, size, nitems, stream)
  43. char *ptr;
  44. int size, nitems;
  45. FILE *stream;
  46. {
  47.     int bytesread;
  48.     int i;
  49.  
  50.     for (i = 0; i < nitems; i++) {
  51.         for (bytesread = 0; bytesread < size; bytesread++) {
  52.             fputc(*ptr++, stream);
  53.             if (ferror(stream))
  54.                 return i;
  55.         }
  56.     }
  57.     return i;
  58. }
  59.