Subject: RE: argc/argv
From: [email-masked] (Haynes, Dan)

15 Jan 1999 01:09:03 -0800
Message-ID: <[email-masked]>
Mime-Version: 1.0
Content-Type: text/plain;
	charset="iso-8859-1"
To: [email-masked], [email-masked]

When using Borland C++, link with wildcards.obj (in V5.02 it's
c:\borlandc\lib\32bit\wildargs.obj or c:\borlandc\lib\16bit\wildargs.obj)
and your application will work the same under DOS/Win32 as the Unix version.

Wildargs.obj simply expands wildcards in file specifications somewhat like
bash.exe does.

The one gotcha with that scheme - if no files match the wildcard, Borland
just passes in the arguments untouched. So if you invoke your program as
"test *.c" and there are no .c files in the directory, argv[1] will be set
to "*.c" :-(

Hope that helps,

  Dan Haynes

> -----Original Message-----
> From: [email-masked] [mailto:[email-masked]]
> Sent: Thursday, January 14, 1999 4:24 AM
> To: [email-masked]
> Subject: argc/argv
> 
> 
> Hi! Evidently gcc treats argc/argv quite differently from
> Turbo C when * appears in any argvs. It always tries to
> replace this argv with as many as possible matching files.
> For example,
> 
> main(int argc, char *argv[])
> { int i;
>   for (i=1; i<argc; i++) printf("argv[%d]=%s\n", i, argv[i]);
> }
> 
> Run it with t*.c as the command argument,
> 
> Compiled with GCC, it prints:
> argv[1]=Test.c
> argv[2]=Text2html.c
> argv[3]=Timezone.c
> 
> Compiled with Turbo C, it prints:
> argv[1]=t*.c
> 
> i know nothing about any standard or coding conventions
> about this, but could any of you tell me which is more
> standard or conventional?
>   
> J. Shi
> 
> -
> For help on using this list (especially unsubscribing), send 
> a message to
> "[email-masked]" with one line of text: "help".
> 
-
For help on using this list (especially unsubscribing), send a message to
"[email-masked]" with one line of text: "help".