Läser in kommandoradsargument

C:
Läser in kommandoradsargument

Hur man gör:

I C kan main-funktionen utformas för att acceptera kommandoradsargument genom att använda parametrarna int argc och char *argv[]. Här representerar argc antalet argument som passerats, och argv är en array av teckenpekare som listar alla argument. Här är ett snabbt exempel för att illustrera:

#include <stdio.h>

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

Genom att använda ovanstående kod, om programmet körs som ./programnamn -a exempel, skulle utmatningen bli:

Programnamn: ./programnamn
Antal Argument: 2
Argument 1: -a
Argument 2: exempel

Detta demonstrerar hur kommandoradsargument kan tolkas och användas i ett C-program.

Fördjupning

Konventionen att skicka argument till program går tillbaka till de tidigaste dagarna av Unix. I detta traditionella tillvägagångssätt ger argc och argv ett enkelt men kraftfullt gränssnitt för kommandoradsinteraktion, vilket personifierar Unix filosofi av små, modulära verktyg som arbetar tillsammans. Även om moderna språk ofta introducerar mer sofistikerade bibliotek eller ramverk för att tolka kommandoradsargument, erbjuder direktmetoden i C oöverträffad transparens och kontroll.

I nyliga utvecklingar har bibliotek såsom getopt i POSIX-system utvecklats för att stödja mer komplexa tolkningsbehov, som att hantera långa alternativnamn eller standardvärden för saknade argument. Ändå kvarstår den grundläggande mekanismen för argc och argv som väsentlig för att förstå hur program interagerar med sin körtidsmiljö i C.

Kritiker kan argumentera att hantering av argc och argv direkt kan vara felbenägen, och framhåller användningen av högre nivås abstraktioner. Ändå, för de som strävar efter att behärska C:s komplexiteter och uppskatta nyanserna i dess lågnivåoperationer, är mästring av kommandoradsargument en rättighet. Denna blandning av historisk metodik och praktiskt nytta förkroppsligar mycket av C:s bestående attraktion i systemprogrammering och mjukvaruutveckling.