Argument parsing with gcc compiled program

Gluszczak, Glenn glenn.gluszczak@emc.com
Thu Nov 26 21:20:00 GMT 2015



Sorry I should have specified, this is not bash as this happens with the gcc compiled
program within a Command Prompt session.


K:\>a.exe -s something "something d\:\\hello"

Command-line arguments:
  argv[0]   a
  argv[1]   -s
  argv[2]   something
  argv[3]   something d\:\hello
CL: K:\sat-misc\src\sat-main\sat\src\wiz\a -s something "something d\:\hello"


==============================================================


For some reason when I compile a C program in gcc, double backslashes within quotes are stripped.
But if I compile with Visual Studio this does not happen.  I used a small test program to demonstrate.

VS
c:\msvc2010_SP1\VC>a.exe -s something "something d\:\\hello"

Command-line arguments:
  argv[0]   a.exe
  argv[1]   -s
  argv[2]   something
  argv[3]   something d\:\\hello
CL: a.exe  -s something "something d\:\\hello"


GCC
$ ./a.exe -s something "something d\:\\hello"

Command-line arguments:
  argv[0]   ./a
  argv[1]   -s
  argv[2]   something
  argv[3]   something d\:\hello
CL: K:\sat-misc\src\sat-main\sat\src\wiz\a -s something "something d\:\hello"



Is there some compiler option or setting I'm unaware of?
Thanks,
Glenn

===============================================================================


#include <Windows.h>
#include <stdio.h>

int main( int argc, // Number of strings in array argv
 char *argv[],      // Array of command-line argument strings
 char **envp )      // Array of environment variable strings
{
    int count;
   char *gcl;

    // Display each command-line argument.
    printf("   \nCommand-line arguments:\n" );
    for( count = 0; count < argc; count++ )
        printf( "  argv[%d]   %s\n", count, argv[count] );

 
    gcl = GetCommandLine();
    printf("CL: %s\n",gcl);
}


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple



More information about the Cygwin mailing list