1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
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];
}
|