C Academy · पाठ

argc और argv

Program arguments पढ़ना

पाठ 1, कुल 4 में से13 चरण

argc और argv, CoddyKit पर C Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह C Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। C Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Programs arguments प्राप्त करते हैं

जब आप terminal से कोई program चलाते हैं, तो आप उसे अतिरिक्त words दे सकते हैं जिन्हें command-line arguments कहा जाता है।

C इन्हें दो parameters के माध्यम से main तक पहुँचाता है: argc (argument count) और argv (argument vector)।

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("This program received %d arguments\n", argc);
    return 0;
}

main का signature

main का पूरा रूप है:

  • int main(int argc, char *argv[])

argc arguments की संख्या है। argv string pointers का array है, जिसमें प्रत्येक argument के लिए एक pointer होता है।

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("argc = %d\n", argc);
    return 0;
}

argv[0] program का नाम है

पहला तत्व, argv[0], वह नाम (या पथ) है जिसका उपयोग प्रोग्राम चलाने के लिए किया जाता है।

इसीलिए, जब उपयोगकर्ता कोई अतिरिक्त आर्ग्युमेंट न भी दे, तब भी argc का मान कम से कम 1 होता है।

#include <stdio.h>

int main(int argc, char *argv[]) {
    printf("Program name: %s\n", argv[0]);
    return 0;
}

सभी आर्ग्युमेंट प्रिंट करना

आप हर आर्ग्युमेंट स्ट्रिंग को argv में देखने के लिए इंडेक्स 0 से argc - 1 तक लूप चला सकते हैं।

#include <stdio.h>

int main(int argc, char *argv[]) {
    for (int i = 0; i < argc; i++) {
        printf("argv[%d] = %s\n", i, argv[i]);
    }
    return 0;
}

argv NULL पर समाप्त होता है

C मानक के अनुसार, argv[argc] के NULL पॉइंटर होने की गारंटी होती है।

इसका अर्थ है कि आप argc का उपयोग करने के बजाय NULL मिलने तक लूप चला सकते हैं, हालांकि argc से गिनना अधिक सामान्य है।

#include <stdio.h>

int main(int argc, char *argv[]) {
    char **p = argv;
    while (*p != NULL) {
        printf("%s\n", *p);
        p++;
    }
    return 0;
}

आर्ग्युमेंट हमेशा स्ट्रिंग होते हैं

हर आर्ग्युमेंट स्ट्रिंग के रूप में मिलता है, संख्याएँ भी। यदि उपयोगकर्ता 42 देता है, तो आपको पूर्णांक नहीं, बल्कि "42" टेक्स्ट प्राप्त होता है।

आपको इसे atoi या strtol जैसे फ़ंक्शन से स्वयं बदलना होगा।

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    if (argc > 1) {
        int n = atoi(argv[1]);
        printf("Number plus one is %d\n", n + 1);
    } else {
        printf("Pass a number\n");
    }
    return 0;
}

आर्ग्युमेंट की संख्या जाँचना

argv[i] पढ़ने से पहले हमेशा argc की जाँच करें। दिए गए आर्ग्युमेंट से आगे के इंडेक्स तक पहुँचना अपरिभाषित व्यवहार है।

सामान्यतः एक सुरक्षा-जाँच यह देखती है कि पर्याप्त आर्ग्युमेंट दिए गए हैं या नहीं और, अन्यथा, उपयोग-विधि का संदेश प्रिंट करती है।

#include <stdio.h>

int main(int argc, char *argv[]) {
    if (argc < 2) {
        printf("Usage: %s <name>\n", argv[0]);
        return 1;
    }
    printf("Hello, %s!\n", argv[1]);
    return 0;
}

शून्य से अलग निकास कोड का उपयोग करना

जब आर्ग्युमेंट गलत हों, तो शेल को विफलता का संकेत देने के लिए main से शून्य से अलग मान लौटाएँ।

परंपरा के अनुसार 0 का अर्थ सफलता है और किसी भी अन्य मान का अर्थ है कि कोई त्रुटि हुई।

#include <stdio.h>

int main(int argc, char *argv[]) {
    if (argc != 3) {
        printf("Need exactly 2 arguments\n");
        return 1;
    }
    printf("Got both arguments\n");
    return 0;
}

संख्यात्मक आर्ग्युमेंट का योग करना

एक व्यावहारिक उदाहरण: कमांड लाइन पर दिए गए सभी संख्याओं को जोड़ने के लिए प्रत्येक को atoi से बदलें और कुल योग में जोड़ते जाएँ।

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
    int sum = 0;
    for (int i = 1; i < argc; i++) {
        sum += atoi(argv[i]);
    }
    printf("Sum = %d\n", sum);
    return 0;
}

argv लिखने का वैकल्पिक तरीका

आपको char *argv[] के बजाय char **argv दिखाई दे सकता है। फ़ंक्शन पैरामीटर के रूप में दोनों का अर्थ एक ही है: पहली स्ट्रिंग के पॉइंटर का पॉइंटर।

दोनों से आप argv[i] का उपयोग करके इंडेक्स कर सकते हैं।

#include <stdio.h>

int main(int argc, char **argv) {
    if (argc > 1)
        printf("First arg: %s\n", argv[1]);
    return 0;
}

आर्ग्युमेंट को वापस दिखाना

प्रसिद्ध echo कमांड अपने आर्ग्युमेंट को सरलता से प्रिंट करता है। यहाँ उनका एक न्यूनतम संस्करण है, जो उन्हें स्पेस से जोड़ता है।

#include <stdio.h>

int main(int argc, char *argv[]) {
    for (int i = 1; i < argc; i++) {
        printf("%s", argv[i]);
        if (i < argc - 1) printf(" ");
    }
    printf("\n");
    return 0;
}

त्वरित जाँच

argc और argv की अपनी समझ जाँचें।

पुनरावलोकन

आपने सीखा कि प्रोग्राम कमांड-लाइन इनपुट कैसे पढ़ते हैं:

  • main(int argc, char *argv[]) संख्या और ऐरे प्राप्त करता है।
  • argv[0] प्रोग्राम का नाम है; वास्तविक आर्ग्युमेंट इंडेक्स 1 से शुरू होते हैं।
  • argv[argc] NULL होता है।
  • आर्ग्युमेंट हमेशा स्ट्रिंग होते हैं; संख्याओं को atoi से बदलें और पहले argc की जाँच करें।
शुरुआत निःशुल्क

एआई शिक्षक के साथ C सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
39
पाठ
144

अक्सर पूछे जाने वाले प्रश्न

क्या “argc और argv” पाठ निःशुल्क है?

हाँ—“argc और argv” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और C Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। C Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“argc और argv” में मैं क्या सीखूँगा?

Program arguments पढ़ना आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ C Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या C Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर C Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“argc और argv” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस C Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर C Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. argc और argv
  2. Options को Parse करना
  3. getopt
  4. CLI Tool बनाना
← C Academy पर वापस जाएँ