argc/argv

Haynes, Dan Haynes@pwrh.com
Sun Jan 31 23:52:00 GMT 1999


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: shijn@tcc.com.cn [ mailto:shijn@tcc.com.cn ]
> Sent: Thursday, January 14, 1999 4:24 AM
> To: gnu-win32@cygnus.com
> 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
> "gnu-win32-request@cygnus.com" with one line of text: "help".
> 
-
For help on using this list (especially unsubscribing), send a message to
"gnu-win32-request@cygnus.com" with one line of text: "help".



More information about the Cygwin mailing list