Let us suppose that we have a console program called ArgPrinter. To execute the program and send external arguments you will need to open a console\terminal and type something like this:
ArgPrinter arg1 arg2 arg3 arg4Arguments can also be sent by using other methods, but those are system specific (Example: When you create a shortcut in windows you can go to the shortcut's properties and put the arguments there).
If you want to access the arguments who were sent, your main function should have this prototype:
int main(int argc, char**argv)argc is a integer value who represents the number of arguments who were sent.
argv is a array of strings containing each of the sent arguments plus the path to your executable file.
TIP: Yes, this means that if you send 4 arguments argc will be equal to 5 because of the path argument.
Now let's take an example implementation of the ArgPrinter program:
#include<stdio.h>; int main(int argc, char** argv) { int i; int returnValue = 0; if(argc>0) { printf("Number of arguments: %d\n", argc); for(i = 0; i<argc; i++) { printf("%s\n",argv[i]); } } else { returnValue = -1; } return returnValue; } /*Output Number of arguments: 5 /home/dystopiancode/Ubuntu One/Eclipse/ArgPrinter/ArgPrinter Arg1 Arg2 Arg3 Arg4 */The program above will print the number of arguments and after that it will print the value of each argument.
The value that your program returns can signify the execution status of the program. Usually programs return 0 if they were executed successfully. This feature is useful if you call a C program from a shell script or something similar.
Question: Is your C program called directly from console using the external arguments or it is called by another program?
References:
http://crasseux.com/books/ctutorial/argc-and-argv.html
No comments:
Post a Comment
Got a question regarding something in the article? Leave me a comment and I will get back at you as soon as I can!