main फंक्शन argc (आर्गुमेंट काउंट) और argv (आर्गुमेंट वेक्टर) पैरामीटर्स लेकर कमांड लाइन आर्गुमेंट्स प्राप्त कर सकता है।
सिग्नेचर
int main(int argc, char *argv[])
argc: आर्गुमेंट्स की संख्या (प्रोग्राम नाम सहित, कम से कम 1)।argv[0]: प्रोग्राम नाम/पथ।argv[1]...argv[argc-1]: वास्तविक आर्गुमेंट्स।argv[argc]: NULL (गारंटीड)।
उदाहरण
#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");
}
// सभी आर्गुमेंट्स प्रिंट करें
printf("argc = %d\n", argc);
for (int i = 0; i < argc; i++) {
printf("argv[%d] = %s\n", i, argv[i]);
}
return 0;
}
आउटपुट
$ ./a.out testing The argument supplied is: testing argc = 2 argv[0] = ./a.out argv[1] = testing $ ./a.out testing1 testing2 Too many arguments supplied. argc = 3 argv[0] = ./a.out argv[1] = testing1 argv[2] = testing2 $ ./a.out One argument expected. argc = 1 argv[0] = ./a.out
उन्नत पार्सिंग: getopt
#include <unistd.h>
int main(int argc, char *argv[]) {
int opt;
while ((opt = getopt(argc, argv, "ab:c")) != -1) {
switch (opt) {
case 'a': printf("Option -a\n"); break;
case 'b': printf("Option -b with arg: %s\n", optarg); break;
case 'c': printf("Option -c\n"); break;
case '?': printf("Unknown option: %c\n", optopt); break;
}
}
return 0;
}