* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
* sequential unformatted external read/write routines
LOCAL
char rsue
[] = "read sue";
LOCAL
char wsue
[] = "write sue";
if(n
=c_sue(a
,READ
)) return(n
);
if(curunit
->uwrt
&& ! nowreading(curunit
)) err(errflag
, errno
, rsue
)
if(fread(&reclen
,sizeof(int),1,cf
) == 1) return(OK
);
err(errflag
, errno
, rsue
)
if(n
=c_sue(a
,WRITE
)) return(n
);
if(!curunit
->uwrt
&& ! nowwriting(curunit
)) err(errflag
, errno
, wsue
)
fseek(cf
,(long)sizeof(int),1);
external
= sequential
= YES
;
if(not_legal(lunit
)) err(errflag
,F_ERUNIT
,rsue
+5)
if(!curunit
->ufd
&& (n
=fk_open(flag
,SEQ
,UNF
,(ftnint
)lunit
)))
if(curunit
->ufmt
) err(errflag
,F_ERNOUIO
,rsue
+5)
if(curunit
->url
) err(errflag
,F_ERNOSIO
,rsue
+5)
if(!curunit
->useek
) err(errflag
,F_ERSEEK
,rsue
+5)
fwrite(&reclen
,sizeof(int),1,cf
);
fwrite(&reclen
,sizeof(int),1,cf
);
fseek(cf
,(long)(reclen
-recpos
+sizeof(int)),1);