1 /*
2  * wincecompat.c : wince compatiblity module
3  *
4  * See Copyright for the status of this software.
5  *
6  * javier@tiresiassoft.com
7  *
8  * 17 Sep 2002  created
9  */
10 
11 #include "wincecompat.h"
12 
13 char *strError[]= {"Error 0","","No such file or directory","","","","","Arg list too long",
14 	"Exec format error","Bad file number","","","Not enough core","Permission denied","","",
15 	"","File exists","Cross-device link","","","","Invalid argument","","Too many open files",
16 	"","","","No space left on device","","","","","Math argument","Result too large","",
17 	"Resource deadlock would occur", "Unknown error under wince"};
18 
19 
20 int errno=0;
21 
read(int handle,char * buffer,unsigned int len)22 int read(int handle, char *buffer, unsigned int len)
23 {
24 	return(fread(&buffer[0], len, 1, (FILE *) handle));
25 }
26 
write(int handle,const char * buffer,unsigned int len)27 int write(int handle, const char *buffer, unsigned int len)
28 {
29 	return(fwrite(&buffer[0], len,1,(FILE *) handle));
30 }
31 
open(const char * filename,int oflag,...)32 int open(const char *filename,int oflag, ...)
33 {
34 	char mode[3]; /* mode[0] ="w/r/a"  mode[1]="+" */
35 	mode[2]=0;
36 	if ( oflag==(O_WRONLY|O_CREAT) )
37 		mode[0]='w';
38 	else if (oflag==O_RDONLY)
39 		mode[0]='r';
40 	return (int) fopen(filename, mode);
41 }
42 
close(int handle)43 int close(int handle)
44 {
45 	return ( fclose((FILE *) handle) );
46 }
47 
48 
getcwd(char * buffer,unsigned int size)49 char *getcwd( char *buffer, unsigned int size)
50 {
51     /* Windows CE don't have the concept of a current directory
52      * so we just return NULL to indicate an error
53      */
54     return NULL;
55 }
56 
getenv(const char * varname)57 char *getenv( const char *varname )
58 {
59 	return NULL;
60 }
61 
strerror(int errnum)62 char *strerror(int errnum)
63 {
64 	if (errnum>MAX_STRERROR)
65 		return strError[MAX_STRERROR];
66 	else
67 		return strError[errnum];
68 }
69