1 #include "misc.h"
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <errno.h>
5 #include <string.h>
6 
7 
doread(int handle,void * buf,ssize_t len,const char * name)8 int doread(int handle,void * buf,ssize_t len, const char * name){
9    ssize_t i;
10    if ((i=read(handle,buf,len))!=len){
11       fprintf(stderr,"Error reading %s (%i/%i): %s\n",name,i,len,strerror(errno));
12       return -1;
13    }
14    return 0;
15 }
dowrite(int handle,const void * buf,ssize_t len,const char * name,const char * name2)16 int dowrite(int handle, const void * buf, ssize_t len,const char *name,const char *name2){
17    ssize_t i;
18    if ((i=write(handle,buf,len))!=len){
19       fprintf(stderr,"Error writing %s %s (%i/%i): %s\n",name,name2,i,len,strerror(errno));
20       return -1;
21    }
22    else return 0;
23 }
doopen(int & handle,const char * name,int access,int mode)24 int doopen(int &handle,const char * name,int access,int mode) {
25    if ((handle=open(name,access,mode))==-1){
26       fprintf(stderr,"Error opening %s: %s\n",name,strerror(errno));
27       return -1;
28    }
29    else return 0;
30 }
31 #ifndef HAVE_STRERROR
strerror(int err)32 const char * strerror(int err){
33 	static char buf[5];
34 #ifdef HAVE_SNPRINTF
35 	snprintf(buf,5,"%i",err);
36 #else
37 	sprintf(buf,"%i",err);
38 #endif
39 	return buf;
40 }
41 #endif
42