Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में कमांड लाइन आर्गुमेंट्स (Command Line Arguments)

कमांड लाइन आर्गुमेंट्स क्या हैं?

ऑपरेटिंग सिस्टम के प्रॉम्प्ट से जारी की गई एक निष्पादन योग्य इंस्ट्रक्शन को कमांड कहा जाता है। कमांड से जुड़े आर्गुमेंट्स होते हैं:

  • argc - आर्गुमेंट काउंट (कुल आर्गुमेंट्स की संख्या)
  • argv - आर्गुमेंट वेक्टर (आर्गुमेंट स्ट्रिंग्स का सरणी)

पैरामीटर विवरण

उदाहरण

C:\> sample.exe hello how are you

यहां:

  • argc = 5
  • argv[0] = "sample.exe" (प्रोग्राम नाम)
  • argv[1] = "hello"
  • argv[2] = "how"
  • argv[3] = "are"
  • argv[4] = "you"

प्रोग्राम

#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;
    
    printf("कमांड प्रॉम्प्ट पर आर्गुमेंट्स की संख्या = %d\n", argc);
    printf("प्रॉम्प्ट पर दिए गए आर्गुमेंट्स:\n");
    
    for (i = 0; i < argc; i++) {
        printf("argv[%d] = %s\n", i, argv[i]);
    }
    
    return 0;
}

आउटपुट


# कंपाइल करें: gcc cmdargs.c -o cmdargs
# चलाएं: ./cmdargs hello how are you

कमांड प्रॉम्प्ट पर आर्गुमेंट्स की संख्या = 5
प्रॉम्प्ट पर दिए गए आर्गुमेंट्स:
argv[0] = ./cmdargs
argv[1] = hello
argv[2] = how
argv[3] = are
argv[4] = you

व्यावहारिक उदाहरण: फ़ाइल कॉपी प्रोग्राम

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

int main(int argc, char *argv[]) {
    FILE *src, *dest;
    char ch;
    
    if (argc != 3) {
        printf("उपयोग: %s <स्रोत_फ़ाइल> <गंतव्य_फ़ाइल>\n", argv[0]);
        return 1;
    }
    
    src = fopen(argv[1], "r");
    if (src == NULL) {
        printf("स्रोत फ़ाइल नहीं खोल सकते: %s\n", argv[1]);
        return 1;
    }
    
    dest = fopen(argv[2], "w");
    if (dest == NULL) {
        printf("गंतव्य फ़ाइल नहीं बना सकते: %s\n", argv[2]);
        fclose(src);
        return 1;
    }
    
    while ((ch = fgetc(src)) != EOF) {
        fputc(ch, dest);
    }
    
    printf("फ़ाइल '%s' से '%s' कॉपी की गई।\n", argv[1], argv[2]);
    
    fclose(src);
    fclose(dest);
    return 0;
}

आर्गुमेंट्स को पूर्णांक में बदलना

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

int main(int argc, char *argv[]) {
    if (argc < 3) {
        printf("उपयोग: %s <संख्या1> <संख्या2>\n", argv[0]);
        return 1;
    }
    
    int a = atoi(argv[1]);  // स्ट्रिंग को पूर्णांक में बदलें
    int b = atoi(argv[2]);
    
    printf("%d + %d = %d\n", a, b, a + b);
    printf("%d * %d = %d\n", a, b, a * b);
    
    return 0;
}

उन्नत: getopt() का उपयोग करके विकल्प पार्स करना

#include <stdio.h>
#include <unistd.h>  // getopt के लिए

int main(int argc, char *argv[]) {
    int opt;
    int verbose = 0;
    char *output = NULL;
    
    while ((opt = getopt(argc, argv, "vo:")) != -1) {
        switch (opt) {
            case 'v':
                verbose = 1;
                break;
            case 'o':
                output = optarg;
                break;
            case '?':
                printf("उपयोग: %s [-v] [-o output_file]\n", argv[0]);
                return 1;
        }
    }
    
    printf("Verbose: %s\n", verbose ? "हां" : "नहीं");
    if (output) printf("आउटपुट फ़ाइल: %s\n", output);
    
    return 0;
}

# ./program -v -o result.txt
Verbose: हां
आउटपुट फ़ाइल: result.txt

महत्वपूर्ण नोट्स

  • argv[0] प्रोग्राम नाम है (पथ सहित हो सकता है)
  • argv[argc] हमेशा NULL होता है
  • आर्गुमेंट्स स्ट्रिंग्स के रूप में पास होते हैं, संख्याओं के लिए atoi/atof/strtol उपयोग करें
  • स्पेस वाले आर्गुमेंट्स के लिए कोट्स उपयोग करें: ./prog "hello world"
  1. - पायथन में कमांड लाइन आर्गुमेंट्स कैसे एक्सेस करें?

    कमांड लाइन वह स्थान है जहां ऑपरेटिंग सिस्टम को एक्जीक्यूटेबल कमांड दिए जाते हैं। एक पायथन स्क्रिप्ट को कमांड लाइन में पायथन एक्जीक्यूटेबल के सामने उसका नाम लिखकर एक्जीक्यूट किया जा सकता है। C:\users\acer> python test.py यदि आप चाहते हैं कि कुछ डेटा एलिमेंट्स पायथन स्क्रिप्ट को प्रोसेसिंग के लिए

  1. - पायथन में डिफ़ॉल्ट आर्गुमेंट्स क्या हैं?

    पायथन फंक्शन आर्गुमेंट्स को डिफ़ॉल्ट मान रखने की अनुमति देता है; यदि फंक्शन को उस आर्गुमेंट के बिना कॉल किया जाता है, तो आर्गुमेंट को उसका डिफ़ॉल्ट मान मिल जाता है। उदाहरण पायथन में फंक्शन आर्गुमेंट्स के लिए सिंटैक्स और डिफ़ॉल्ट मान दर्शाने का एक अलग तरीका है। डिफ़ॉल्ट मान इंगित करते हैं कि यदि फंक्

  1. - Bash/Linux में `$@`: कमांड लाइन आर्गुमेंट्स में मास्टरी

    यह लेख बताएगा कि Bash और Bash/Shell स्क्रिप्टिंग में $@ क्या है और आप इसका कैसे और क्यों उपयोग कर सकते हैं। $@ वेरिएबल Bash में एक विशेष वेरिएबल है जो स्क्रिप्ट को पास किए गए सभी कमांड लाइन आर्गुमेंट्स/पैरामीटर्स का मान रखता है। Bash में कमांड लाइन आर्गुमेंट्स/पैरामीटर्स शेल स्क्रिप्ट्स में कमांड-ला

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
पैरामीटरप्रकारविवरण
argcintकमांड प्रॉम्प्ट से पास किए गए कुल आर्गुमेंट्स की संख्या
argvchar *argv[]आर्गुमेंट स्ट्रिंग्स को इंगित करने वाले पॉइंटर्स का सरणी