Command Line Arguments in C Programming: Syntax and Usage Explained
Table of Content:
The most important function of C/C++ is main() function. It is mostly defined with a return type of int and without parameters :
int main() {
/* ... */
}
We can also give command-line arguments in C and C++. Command-line arguments are given after the name of the program in command-line shell of Operating Systems.
To pass command line arguments, we typically define main() with two arguments : first argument is the number of command line arguments and second is list of command-line arguments.
int main(int argc, char *argv[]) {
/* ... */
}
or
int main(int argc, char **argv) {
/* ... */
}
- argc (ARGument Count) is int and stores number of command-line arguments passed by the user including the name of the program. So if we pass a value to a program, value of argc would be 2 (one for argument and one for program name)
- The value of argc should be non negative.
- argv(ARGument Vector) is array of character pointers listing all the arguments.
- If argc is greater than zero,the array elements from argv[0] to argv[argc-1] will contain pointers to strings.
- Argv[0] is the name of the program , After that till argv[argc-1] every element is 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.
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 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 single argument, it produces the following result.
$./a.out testing The argument supplied is testing
When the above code is compiled and executed with a 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 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 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
- Assignment 1: C program to find the sum of two numbers using command line arguments
- Assignment 2: Command Line Arguments Basic Program
- Assignment 3: C Program - Factorial of a Number using Command Line Argument Program, By creating a function
- Assignment 4: Find the Average of Two numbers using Command Line Language
- Assignment 5: Binary to decimal using Command Line Language
- Assignment 6: Nth Fibonacci Number using Command Line Arguments
- Assignment 7: Command Line Program for Odd Even
- Assignment 8: C Program - Factorial of a Number using Command Line Argument
- Assignment 9: Write a Program Fibonacci Series Using Command Line Arguments
- Assignment 10: Write a program to swap two numbers using command line programming
- Assignment 11: Command Line Program to Convert Binary to Octal
- Assignment 12: Command Line Program to Convert Decimal to Octal
- Assignment 13: Command Line Program to check if a year is Leap Year or Not
- Assignment 14: String Reversal Program with Command Line Programming
- Assignment 15: C Program to find Greatest of two number using command Line programming
- Assignment 16: Find the LCM of two Numbers using Command Line Language
- Assignment 17: Find the sum of the digits of a number by command line Arguments
- Assignment 18: Using Command Line Arguments Program to Convert a Decimal to Binary Number
- Assignment 19: Command Line Program to find Area of Traingle
- Assignment 20: C Program - Command Line Program to Check if a Number is Prime or Not
- Assignment 21: Square Root of Prime Number using Command Line Argument
- Assignment 22: Calculate Square Root without using Math.h sqrt Function
- Assignment 23: Command-Line program to find Armstrong number using Command line arguments
- Assignment 24: Reverse a Number using Command Line Argument
- Assignment 25: Command Line Program to find Area of Circle
- Assignment 26: Command Line Program to Check if a Number is Palindrome or Not using C Programming language