10 if(f__init
!= 1) f_init();
12 if(a
->ciunit
>=MXUNIT
|| a
->ciunit
<0)
13 err(a
->cierr
,101,"startio");
14 f__sequential
=f__formatted
=f__recpos
=0;
16 f__curunit
= &f__units
[a
->ciunit
];
18 if(f__curunit
->ufd
==NULL
&& fk_open(DIR,UNF
,a
->ciunit
) ) err(a
->cierr
,104,"due");
19 f__cf
=f__curunit
->ufd
;
20 if(f__curunit
->ufmt
) err(a
->cierr
,102,"cdue");
21 if(!f__curunit
->useek
) err(a
->cierr
,104,"cdue");
22 if(f__curunit
->ufd
==NULL
) err(a
->cierr
,114,"cdue");
24 err(a
->cierr
,130,"due");
25 (void) fseek(f__cf
,(long)(a
->cirec
-1)*f__curunit
->url
,SEEK_SET
);
30 integer
s_rdue(a
) cilist
*a
;
32 integer
s_rdue(cilist
*a
)
37 if(n
=c_due(a
)) return(n
);
38 if(f__curunit
->uwrt
&& f__nowreading(f__curunit
))
39 err(a
->cierr
,errno
,"read start");
43 integer
s_wdue(a
) cilist
*a
;
45 integer
s_wdue(cilist
*a
)
50 if(n
=c_due(a
)) return(n
);
51 if(f__curunit
->uwrt
!= 1 && f__nowwriting(f__curunit
))
52 err(a
->cierr
,errno
,"write start");
58 if(f__curunit
->url
==1 || f__recpos
==f__curunit
->url
)
60 (void) fseek(f__cf
,(long)(f__curunit
->url
-f__recpos
),SEEK_CUR
);
61 if(ftell(f__cf
)%f__curunit
->url
)
62 err(f__elist
->cierr
,200,"syserr");
70 err(f__elist
->cierr
,errno
,"write end");