60 lines · 745 B · C
RawDownload
#include "sam.h" static int inerror=FALSE; /* * A reasonable interface to the system calls */ voidresetsys(void){	inerror = FALSE;} voidsyserror(char *a){	char buf[ERRMAX]; 	if(!inerror){		inerror=TRUE;		errstr(buf, sizeof buf);		dprint("%s: ", a);		error_s(Eio, buf);	}} intRead(int f, void *a, int n){	char buf[ERRMAX]; 	if(read(f, (char *)a, n)!=n) {		if (lastfile)			lastfile->rescuing = 1;		errstr(buf, sizeof buf);		if (downloaded)			fprint(2, "read error: %s\n", buf);		rescue();		exits("read");	}	return n;} intWrite(int f, void *a, int n){	int m; 	if((m=write(f, (char *)a, n))!=n)		syserror("write");	return m;} voidSeek(int f, long n, int w){	if(seek(f, n, w)==-1)		syserror("seek");}