#include "sam.h" | |
static int inerror=FALSE; | |
/* | |
* A reasonable interface to the system calls | |
*/ | |
void | |
resetsys(void) | |
{ | |
inerror = FALSE; | |
} | |
void | |
syserror(char *a) | |
{ | |
char buf[ERRMAX]; | |
if(!inerror){ | |
inerror=TRUE; | |
errstr(buf, sizeof buf); | |
dprint("%s: ", a); | |
error_s(Eio, buf); | |
} | |
} | |
int | |
Read(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; | |
} | |
int | |
Write(int f, void *a, int n) | |
{ | |
int m; | |
if((m=write(f, (char *)a, n))!=n) | |
syserror("write"); | |
return m; | |
} | |
void | |
Seek(int f, long n, int w) | |
{ | |
if(seek(f, n, w)==-1) | |
syserror("seek"); | |
} |