I am designing an ftp client prompt in C (unix environment).

At this point, I have an infinite loop with an fprintf of the prompt on stdout and an fgets for reading user input.

I need help with the structure of my program. How do I implement this?

I have two char* arrays. One contains a listing of commands the client will use and the other contains a one line help description of each command in the first array (the order corresponds with each command location in the first array).

Provided I do an sscanf on the user input to find out the command and (1) optional argument if applicable, what is the best way to implement this? I'm guessing at some point I will need a switch statement.

Let's start with the help command. It will have the exact same functionality as a help command in an ftp client. help alone prints a listing of all commands and help arg prints help on a specific command.

Thanks for any help you can provide.

Well, I got this figured out.

I will do it this way:

command/argument processor function (extracts/separates a user command and its arguments)

if arg1 is "help" then help function is called with number of arguments the user supplied after help (in my case the user can only supply one argument)

the help function then decided to print a listing of all commands available (if the user typed "help" only) or show help for a specific function if there is an extra argument (ie. help chdir).

if 1st case - 'for' loop printing all elements of char* array.

if 2nd case - loop/process command array till command is found, then use index for the command to retrieve command description from 2nd char array.

This article has been dead for over six months. Start a new discussion instead.