Command Line Arguments in C - GeeksforGeeks (2024)

Last Updated : 09 Jan, 2024

Summarize

Comments

Improve

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[]) { /* ... */ } orint 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.

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:./maingeeksforgeeks

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

// 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.outNo 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.outNumber Of Arguments Passed: 4----Following Are The Command Line Arguments Passed----argv[0]: ./a.outargv[1]: Firstargv[2]: Secondargv[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.outNumber Of Arguments Passed: 2----Following Are The Command Line Arguments Passed----argv[0]: ./a.outargv[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.outNumber Of Arguments Passed: 2----Following Are The Command Line Arguments Passed----argv[0]: ./a.outargv[1]: First Second Third


K

Kartik Ahuja and Avadhut Patade

Command Line Arguments in C - GeeksforGeeks (1)

Improve

Next Article

Variable Length Argument in C

Please Login to comment...

Command Line Arguments in C - GeeksforGeeks (2024)
Top Articles
This is How Much Tech Companies Profit From Employees
When to buy travel insurance?
Kmart near me - Perth, WA
Warren Ohio Craigslist
Faridpur Govt. Girls' High School, Faridpur Test Examination—2023; English : Paper II
Evil Dead Rise Showtimes Near Massena Movieplex
Beds From Rent-A-Center
Directions To Lubbock
Doby's Funeral Home Obituaries
Best Restaurants In Seaside Heights Nj
Cars For Sale Tampa Fl Craigslist
Maxpreps Field Hockey
Best Pawn Shops Near Me
Culvers Tartar Sauce
What Time Chase Close Saturday
How To Cut Eelgrass Grounded
Race Karts For Sale Near Me
Energy Healing Conference Utah
Gayla Glenn Harris County Texas Update
Lisas Stamp Studio
Best Transmission Service Margate
Sunset Time November 5 2022
Sec Baseball Tournament Score
Rapv Springfield Ma
Hannah Palmer Listal
3569 Vineyard Ave NE, Grand Rapids, MI 49525 - MLS 24048144 - Coldwell Banker
Democrat And Chronicle Obituaries For This Week
Jesus Calling Feb 13
Www.1Tamilmv.con
Does Royal Honey Work For Erectile Dysfunction - SCOBES-AR
Lil Durk's Brother DThang Killed in Harvey, Illinois, ME Confirms
Blue Beetle Movie Tickets and Showtimes Near Me | Regal
Missouri State Highway Patrol Will Utilize Acadis to Improve Curriculum and Testing Management
Craigslist West Seneca
Leatherwall Ll Classifieds
Arcadia Lesson Plan | Day 4: Crossword Puzzle | GradeSaver
Jewish Federation Of Greater Rochester
My.lifeway.come/Redeem
Mohave County Jobs Craigslist
Puretalkusa.com/Amac
Ig Weekend Dow
✨ Flysheet for Alpha Wall Tent, Guy Ropes, D-Ring, Metal Runner & Stakes Included for Hunting, Family Camping & Outdoor Activities (12'x14', PE) — 🛍️ The Retail Market
Mynord
My Eschedule Greatpeople Me
Willkommen an der Uni Würzburg | WueStart
Gonzalo Lira Net Worth
Mmastreams.com
Gear Bicycle Sales Butler Pa
Poster & 1600 Autocollants créatifs | Activité facile et ludique | Poppik Stickers
How to Get a Check Stub From Money Network
Grace Charis Shagmag
Fetllife Com
Latest Posts
Article information

Author: Tuan Roob DDS

Last Updated:

Views: 6167

Rating: 4.1 / 5 (42 voted)

Reviews: 89% of readers found this page helpful

Author information

Name: Tuan Roob DDS

Birthday: 1999-11-20

Address: Suite 592 642 Pfannerstill Island, South Keila, LA 74970-3076

Phone: +9617721773649

Job: Marketing Producer

Hobby: Skydiving, Flag Football, Knitting, Running, Lego building, Hunting, Juggling

Introduction: My name is Tuan Roob DDS, I am a friendly, good, energetic, faithful, fantastic, gentle, enchanting person who loves writing and wants to share my knowledge and understanding with you.