home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / libI77 / uio.c < prev    next >
Encoding:
C/C++ Source or Header  |  1979-01-10  |  861 b   |  43 lines

  1. #include "fio.h"
  2. int reclen;
  3. do_us(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
  4. {
  5.     if(reading)
  6.     {
  7.         recpos += *number * len;
  8.         if(recpos>reclen)
  9.         {
  10.             err(elist->cierr,110,"eof/uio");
  11.         }
  12.         fread(ptr,(int)len,(int)(*number),cf);
  13.         return(0);
  14.     }
  15.     else
  16.     {
  17.         reclen += *number * len;
  18.         fwrite(ptr,(int)len,(int)(*number),cf);
  19.         return(0);
  20.     }
  21. }
  22. do_uio(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
  23. {
  24.     if(sequential)
  25.         return(do_us(number,ptr,len));
  26.     else    return(do_ud(number,ptr,len));
  27. }
  28. do_ud(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
  29. {
  30.     recpos += *number * len;
  31.     if(recpos > curunit->url && curunit->url!=1)
  32.         err(elist->cierr,110,"eof/uio");
  33.     if(reading)
  34.     {
  35.         if(fread(ptr,(int)len,(int)(*number),cf)
  36.             != *number)
  37.             err(elist->cierr,errno,"eof/uio")
  38.         else return(0);
  39.     }
  40.     fwrite(ptr,(int)len,(int)(*number),cf);
  41.     return(0);
  42. }
  43.