44 lines
906 B
C
44 lines
906 B
C
#include "f2c.h"
|
|
#include "fio.h"
|
|
int reclen;
|
|
do_us(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
|
|
{
|
|
if(reading)
|
|
{
|
|
recpos += *number * len;
|
|
if(recpos>reclen)
|
|
{
|
|
err(elist->ciend,(-1), "eof/uio");
|
|
}
|
|
(void) fread(ptr,(int)len,(int)(*number),cf);
|
|
return(0);
|
|
}
|
|
else
|
|
{
|
|
reclen += *number * len;
|
|
(void) fwrite(ptr,(int)len,(int)(*number),cf);
|
|
return(0);
|
|
}
|
|
}
|
|
integer do_uio(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
|
|
{
|
|
if(sequential)
|
|
return(do_us(number,ptr,len));
|
|
else return(do_ud(number,ptr,len));
|
|
}
|
|
do_ud(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
|
|
{
|
|
recpos += *number * len;
|
|
if(recpos > curunit->url && curunit->url!=1)
|
|
err(elist->cierr,110,"eof/uio");
|
|
if(reading)
|
|
{
|
|
if(fread(ptr,(int)len,(int)(*number),cf)
|
|
!= *number)
|
|
err(elist->cierr,27,"eof/uio")
|
|
else return(0);
|
|
}
|
|
(void) fwrite(ptr,(int)len,(int)(*number),cf);
|
|
return(0);
|
|
}
|