COMMAND
LINE ARGUMENTS
It is possible to
pass some values from the command line to your C programs
when they are executed. These values are called command line
arguments and many times they are important for your program especially
when you want to control your program from outside instead of hard coding
those values inside the code.
when they are executed. These values are called command line
arguments and many times they are important for your program especially
when you want to control your program from outside instead of hard coding
those values inside the code.
The command line arguments are handled using main() function arguments
where argc refers to the number of arguments passed, and argv[] is a pointer
array which points to each argument passed to the program. Following is a
simple example which checks if there is any argument supplied from the
command line and take action accordingly:
#include <stdio.h>
int main( int argc, char *argv[] ) { if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } } |
When the above code is compiled and executed with a single argument, it
produces the following result.
$./a.out testing
The argument supplied is testing |
30. COMMAND LINE ARGUMENTS
When the above code is compiled and executed with two arguments, it produces
the following result.
$./a.out testing1 testing2
Too many arguments supplied. |
When the above code is compiled and executed without passing any argument,
it produces the following result.
$./a.out
One argument expected |
It should be noted that argv[0] holds the name of the program itself
and argv[1] is a pointer to the first command line argument supplied, and
*argv[n] is the last argument. If no arguments are supplied, argc will be one,
and if you pass one argument, then argc is set at 2.
You pass all the command line arguments separated by a space, but if argument
itself has a space then you can pass such arguments by putting them inside
double quotes "" or single quotes ''. Let us re-write above example once again
where we will print program name and we also pass a command line argument
by putting inside double quotes:
#include <stdio.h>
int main( int argc, char *argv[] ) { printf("Program name %s\n", argv[0]); if( argc == 2 ) { printf("The argument supplied is %s\n", argv[1]); } else if( argc > 2 ) { printf("Too many arguments supplied.\n"); } else { printf("One argument expected.\n"); } } |
When the above code is compiled and executed with a single argument
separated by space but inside double quotes, it produces the following result.
$./a.out "testing1 testing2"
Progranm name ./a.out The argument supplied is testing1 testing2 |
No comments:
Post a Comment