home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / sharew / f_2_c / libi77 / uio.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-06-10  |  949 b   |  44 lines

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