Command Line Parsing

Command Line Parsing provides access to arguments passed on the command-line.

Conventional C and C++ programs receive their arguments from main( int argc, char* argv[] ) . On the Symbian platform, programs are invoked through an E32Main() function taking no arguments. Most Symbian programs are launched through a graphical shell rather than through a command-line. The common exceptions are .exe s on the PC platform, which can be run from a Windows command prompt.

For .exe programs, control is received through the E32Main() function, which does not supply arguments. Instead, access to arguments is provided by CCommandLineArguments . This class is not intended primarily for code running on a Symbian phone. Its main use is in parsing the arguments of WINC command-line utilities.

For a program that is launched as a new process, the arguments are available as part of the process command line and may be obtained in full using code as the following:

      
       
      
      TInt argLen = User::CommandLineLength();
HBufC16* hBuf = HBufC::NewL( argLen );
TPtr tPtr = hBuf->Des();
User::CommandLine( tPtr );
     

However, the arguments are in a raw form. For convenience, the CCommandLineArguments class provides functions to access the program name as argument 0, and each command-line argument as argument 1, 2 etc. Arguments beginning with a quote may contain blanks and doubled quotes. Arguments not beginning with a quote are terminated by a blank.