#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"); }