Bell 32V development
[unix-history] / usr / src / libI77 / uio.c
CommitLineData
7a517deb
TL
1#include "fio.h"
2int reclen;
3do_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}
22do_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}
28do_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}