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