From: luke AT jet DOT msk DOT su (Oleg Yu. Polyanski) Newsgroups: comp.os.msdos.djgpp Subject: Re: C command line options Date: 27 May 1998 14:51:15 +0400 Organization: Jet Infosystems Lines: 44 Message-ID: References: NNTP-Posting-Host: goliath.service.jet.msk.su Mime-Version: 1.0 (generated by tm-edit 7.108) Content-Type: text/plain; charset=US-ASCII To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Precedence: bulk >>>>> "Clint" == Clint Allen writes: if you have ever used pascal, you should forget about it. to be seriously, == operator will never compare strings, use function `strcmp' instead, for example: if (strcmp (string, "kuku") == 0) /* string matches to kuku */ do_something (); your code just compares two pointers to type `char' and because they will never equal (argv is passed into the function on the stack but all your strings ("/nts", "/?") are placed right in the code section, so addresses of argv[1] and of "/nts" will always differ), comparison will always fail. you may be intrested also in function `getopt', that automatically parses command line for you in a such way: char argument [ARRAY_OF_ENOUGH_SIZE]; while ((ch = getopt (argc, argv, "ab:")) != EOF) { switch (ch) { case 'a': do_something_a (); break; case 'b': strcpy (argument, optarg); break; } } type in the command prompt/favourite shell `info libc alpha getopt' for details. Clint> Anyone who can help on this? I am trying to use command line Clint> options in my program. Here's what I've got so far: Clint> int main(int argc, char* argv[]) { // Declare/init. variables Clint> int title_on; Clint> // Command line option procedure if (argc == 1) { title_on = 1; Clint> } else { if (argv[1] == "/nts") title_on = 0; else if (argv[1] Clint> == "/?") { puts("Command line options"); Clint> puts("-----------------------"); puts("/? Display this list"); Clint> puts("/nts No title screen"); return 0; } else { puts("Invalid Clint> command line option. Use \"/?\" to see valid options."); Clint> return 0; } }