|
|
1.1 root 1: /* @(#)uio.c 1.2 */
2: /* 3.0 SID # 1.2 */
3: #include "fio.h"
4: int reclen;
5: do_us(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
6: {
7: if(reading)
8: {
9: recpos += *number * len;
10: if(recpos>reclen)
11: {
12: err(elist->ciend,(-1), "eof/uio");
13: }
14: (void) fread(ptr,(int)len,(int)(*number),cf);
15: return(0);
16: }
17: else
18: {
19: reclen += *number * len;
20: (void) fwrite(ptr,(int)len,(int)(*number),cf);
21: return(0);
22: }
23: }
24: do_uio(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
25: {
26: if(sequential)
27: return(do_us(number,ptr,len));
28: else return(do_ud(number,ptr,len));
29: }
30: do_ud(number,ptr,len) ftnint *number; ftnlen len; char *ptr;
31: {
32: recpos += *number * len;
33: if(recpos > curunit->url && curunit->url!=1)
34: err(elist->cierr,110,"eof/uio");
35: if(reading)
36: {
37: if(fread(ptr,(int)len,(int)(*number),cf)
38: != *number)
39: err(elist->cierr,27,"eof/uio")
40: else return(0);
41: }
42: (void) fwrite(ptr,(int)len,(int)(*number),cf);
43: return(0);
44: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.