0% found this document useful (0 votes)
26 views4 pages

Command Line Arguments in C

Uploaded by

kireetiv2005
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
26 views4 pages

Command Line Arguments in C

Uploaded by

kireetiv2005
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Command Line Arguments in C

Credits: https://www.geeksforgeeks.org/command-line-arguments-in-c-
cpp/
The most important function of C is the 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. Command-line arguments are
the values given after the name of the program in the command-line shell of
Operating Systems. Command-line arguments are handled by the main()
function of a C program.
To pass command-line arguments, we typically define main() with two
arguments: the first argument is the number of command-line
arguments and the second is a list of command-line arguments.
Syntax
int main(int argc, char *argv[]) { /* ... */ }
or
int main(int argc, char **argv) { /* ... */ }
Here,
 argc (ARGument Count) is an integer variable that stores the number of
command-line arguments passed by the user including the name of the
program. So if we pass a value to a program, the 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 an 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.
For better understanding run this code on your Linux machine. Also, If you’re
interested in learning how command line arguments can enhance the
functionality of your programs, the C Programming Course Online with Data
Structures covers this topic thoroughly
Example
The below example illustrates the printing of command line arguments.
C
// C program named mainreturn.c to demonstrate the working
// of command line arguement
#include <stdio.h>

// defining main with arguments


int main(int argc, char* argv[])
{
printf("You have entered %d arguments:\n", argc);

for (int i = 0; i < argc; i++) {


printf("%s\n", argv[i]);
}
return 0;
}

Output
You have entered 4 arguments:
./main
geeks
for
geeks
for Terminal Input
$ g++ mainreturn.cpp -o main $ ./main geeks for geeks
Note: Other platform-dependent formats are also allowed by the C standards;
for example, Unix (though not POSIX.1) and Microsoft Visual C++ have a third
argument giving the program’s environment, otherwise accessible through
getenv in stdlib.h. Refer C program to print environment variables for details.
Properties of Command Line Arguments in C
1. They are passed to the main() function.
2. They are parameters/arguments supplied to the program when it is
invoked.
3. They are used to control programs from outside instead of hard coding
those values inside the code.
4. argv[argc] is a NULL pointer.
5. argv[0] holds the name of the program.
6. argv[1] points to the first command line argument and argv[argc-1] points
to the last argument.
Note: You pass all the command line arguments separated by a space, but if the
argument itself has a space, then you can pass such arguments by putting them
inside double quotes “” or single quotes ”.
Example
The below program demonstrates the working of command line arguments.
// C program to illustrate
// command line arguments
#include <stdio.h>
int main(int argc, char* argv[])
{
printf("Program name is: %s", argv[0]);
if (argc == 1)
printf("\nNo Extra Command Line Argument Passed "
"Other Than Program Name");
if (argc >= 2) {
printf("\nNumber Of Arguments Passed: %d", argc);
printf("\n----Following Are The Command Line Arguments Passed----");
for (int i = 0; i < argc; i++)
printf("\nargv[%d]: %s", i, argv[i]);
}
return 0;
}
Output in different scenarios:
1. Without argument: When the above code is compiled and executed without
passing any argument, it produces the following output.
Terminal Input
$ ./a.out
Output
Program Name Is: ./a.out
No Extra Command Line Argument Passed Other Than Program Name
2. Three arguments: When the above code is compiled and executed with
three arguments, it produces the following output.
Terminal Input
$ ./a.out First Second Third
Output
Program Name Is: ./a.out
Number Of Arguments Passed: 4
----Following Are The Command Line Arguments Passed----
argv[0]: ./a.out
argv[1]: First
argv[2]: Second
argv[3]: Third
3. Single Argument: When the above code is compiled and executed with a
single argument separated by space but inside double quotes, it produces the
following output.
Terminal Input
$ ./a.out "First Second Third"
Output
Program Name Is: ./a.out
Number Of Arguments Passed: 2
----Following Are The Command Line Arguments Passed----
argv[0]: ./a.out
argv[1]: First Second Third
4. A single argument in quotes separated by space: When the above code
is compiled and executed with a single argument separated by space but inside
single quotes, it produces the following output.
Terminal Input
$ ./a.out 'First Second Third'
Output
Program Name Is: ./a.out
Number Of Arguments Passed: 2
----Following Are The Command Line Arguments Passed----
argv[0]: ./a.out
argv[1]: First Second Third

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy