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.