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