11 if (a
->ciunit
>= MXUNIT
|| a
->ciunit
< 0)
12 err (a
->cierr
, 101, "startio");
13 f__sequential
= f__formatted
= f__recpos
= 0;
15 f__curunit
= &f__units
[a
->ciunit
];
16 if (a
->ciunit
>= MXUNIT
|| a
->ciunit
< 0)
17 err (a
->cierr
, 101, "startio");
19 if (f__curunit
->ufd
== NULL
&& fk_open (DIR, UNF
, a
->ciunit
))
20 err (a
->cierr
, 104, "due");
21 f__cf
= f__curunit
->ufd
;
23 err (a
->cierr
, 102, "cdue");
24 if (!f__curunit
->useek
)
25 err (a
->cierr
, 104, "cdue");
26 if (f__curunit
->ufd
== NULL
)
27 err (a
->cierr
, 114, "cdue");
29 err (a
->cierr
, 130, "due");
30 FSEEK (f__cf
, (off_t
) (a
->cirec
- 1) * f__curunit
->url
, SEEK_SET
);
42 if (f__curunit
->uwrt
&& f__nowreading (f__curunit
))
43 err (a
->cierr
, errno
, "read start");
54 if (f__curunit
->uwrt
!= 1 && f__nowwriting (f__curunit
))
55 err (a
->cierr
, errno
, "write start");
63 if (f__curunit
->url
== 1 || f__recpos
== f__curunit
->url
)
65 FSEEK (f__cf
, (off_t
) (f__curunit
->url
- f__recpos
), SEEK_CUR
);
66 if (FTELL (f__cf
) % f__curunit
->url
)
67 err (f__elist
->cierr
, 200, "syserr");
77 err (f__elist
->cierr
, errno
, "write end");