Mail Archives: djgpp/2001/12/06/18:07:10
Thank you.
This is consistent with the Unix side of things not the DOS side where you
have to specifically link in an object file to give the same functionality.
Jeff Powell
NEC CustomTechnica
-----Original Message-----
From: Eli Zaretskii [mailto:eliz AT is DOT elta DOT co DOT il]
Sent: Thursday, December 06, 2001 6:55 PM
To: Jeff Powell
Cc: djgpp AT delorie DOT com
Subject: Re: Broken findfirst
On Thu, 6 Dec 2001, Jeff Powell wrote:
> And compiling the file as .c yields the same results. Here is the whole
file.
>
> #include <dos.h>
> //#include <fcntl.h>
> #include <stdio.h>
> #include <string.h>
> #include <dir.h>
>
> main(int ac, char **av)
> {
> struct ffblk f;
> int iFndStatus;
> char cDrv[MAXDRIVE];
> char cDir[MAXDIR];
> char cNam[MAXFILE];
> char cExt[MAXEXT];
> char *MyStr;
>
> // _use_lfn(av[1]);
> fnsplit(av[1],cDrv, cDir, NULL, NULL);
I'm guessing that you invoked your program like this:
yourprog C:\*.*
Is that right? If so, av[1] didn't contain "C:\*.*", but the first file
in the C:\ directory. That's because the DJGPP startup code
automatically expands wildcards in all the command-line arguments. If
you want to pass the literal "C:\*.*" to a program, enclose it in double
or single quotes. When I do that, your program works for me as you'd
expect: it prints all the files in the C:\ directory.
(That's why I asked you to tell what's in av[1], but I guess you didn't
actually look... ;-)
- Raw text -