diff options
Diffstat (limited to 'win32/wince/wincecompat.c')
-rw-r--r-- | win32/wince/wincecompat.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/win32/wince/wincecompat.c b/win32/wince/wincecompat.c new file mode 100644 index 0000000..bd49c57 --- /dev/null +++ b/win32/wince/wincecompat.c @@ -0,0 +1,68 @@ +/* + * wincecompat.c : wince compatiblity module + * + * See Copyright for the status of this software. + * + * javier@tiresiassoft.com + * + * 17 Sep 2002 created + */ + +#include "wincecompat.h" + +char *strError[]= {"Error 0","","No such file or directory","","","","","Arg list too long", + "Exec format error","Bad file number","","","Not enough core","Permission denied","","", + "","File exists","Cross-device link","","","","Invalid argument","","Too many open files", + "","","","No space left on device","","","","","Math argument","Result too large","", + "Resource deadlock would occur", "Unknown error under wince"}; + + +int errno=0; + +int read(int handle, char *buffer, unsigned int len) +{ + return(fread(&buffer[0], len, 1, (FILE *) handle)); +} + +int write(int handle, const char *buffer, unsigned int len) +{ + return(fwrite(&buffer[0], len,1,(FILE *) handle)); +} + +int open(const char *filename,int oflag, ...) +{ + char mode[3]; /* mode[0] ="w/r/a" mode[1]="+" */ + mode[2]=0; + if ( oflag==(O_WRONLY|O_CREAT) ) + mode[0]='w'; + else if (oflag==O_RDONLY) + mode[0]='r'; + return (int) fopen(filename, mode); +} + +int close(int handle) +{ + return ( fclose((FILE *) handle) ); +} + + +char *getcwd( char *buffer, unsigned int size) +{ + /* Windows CE don't have the concept of a current directory + * so we just return NULL to indicate an error + */ + return NULL; +} + +char *getenv( const char *varname ) +{ + return NULL; +} + +char *strerror(int errnum) +{ + if (errnum>MAX_STRERROR) + return strError[MAX_STRERROR]; + else + return strError[errnum]; +} |