Mail Archives: djgpp-workers/2002/04/30/06:03:21
Charles,
I get the same result when I add printing the _doserrno. Charles do you want
to mod the doserr_to_errno translation table and send me a copy so I can
double check it or do you want me to do it and send it to you to double
check? Better save than sorry as there are 255 entries to check against RB's
interrupt list table 1680.
The EA that is my result is the result from the int21 716C function call,
not the doserr or errno. The following is the result when I add printing
doserr:-
DJGPP_204 D:\dj204\work\open>test
test.c 13 file >*.dox, desc = 0, errno = 0 doserr= 0
open.c 116 filename >*.dox, real_name = >*.dox, errno = 0, oflag= 0
_open.c 31 filename >*.dox, errno = 0, oflag= 0
_open.c 38 filename >*.dox, errno = 0, oflag= 0
_open.c 54 filename >*.dox, errno = 0, oflag= 0
_open.c 78 filename >*.dox, errno = 0, oflag= 0
_open.c 80 filename >*.dox, errno = 0, oflag= 0
_open.c 82 filename >*.dox, errno = 0, oflag= 0
_open.c 84 filename >*.dox, errno = 0, oflag= 0
_open.c 114 filename >*.dox, errno = 0, oflag= 0
r.x.ax = 716C
r.x.bx = 0
r.h.ah = 71
r.h.al = 6C
r.x.dx = 1
r.x.cx = 0
_open.c 124 filename >*.dox, errno = 0, oflag= 0
result = r.x.ax = EA
_open.c 127 filename >*.dox, errno = 14, oflag= 0
open.c 119 filename >*.dox, real_name = >*.dox, errno = 14, oflag= 0
test.c 17 file >*.dox, desc = -1, errno = 14 doserr= 123
Andrew
----- Original Message -----
From: "Charles Sandmann" <sandmann AT clio DOT rice DOT edu>
To: "Andrew Cottrell" <acottrel AT ihug DOT com DOT au>
Cc: <djgpp-workers AT delorie DOT com>
Sent: Tuesday, April 30, 2002 9:07 AM
Subject: Re: _open LFN & Win 2K Bug (Was Re: a bug)
> Okay, I still get the same dos error (123) with my binary on Win XP, so
> I guess it's a difference in test programs? Here's my test program:
>
> #include <stdio.h>
> #include <stdlib.h>
> #include <unistd.h>
> #include <fcntl.h>
> #include <sys/types.h>
> #include <sys/stat.h>
> #include <dpmi.h>
> #include <go32.h>
> #include <errno.h>
> #include <dos.h>
> #include <libc/dosio.h>
>
> #define TEST argv[1]
>
> int main(int argc, char** argv) {
> int i;
>
> if(_USE_LFN)
> printf("Long names are active.\n");
> else
> printf("Long names are *NOT* active.\n");
>
> if(argc != 2)
> return printf("Usage: test <filename>\n");
>
> printf("_chmod: 0x%x\n",_chmod(TEST,0));
>
> i = _open(TEST, 0);
>
> if(i == -1) {
> printf("_open %s failed, errno = %d, doserr =
%d\n",TEST,errno,_doserrno);
> } else {
> printf("_open %s was successful, handle = %d\n",TEST,i);
> _close(i);
> }
>
> return 0;
> }
>
>
- Raw text -