Main Funktion

Aus dev.kaibel.net
Zur Navigation springen Zur Suche springen

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

Die Funktionsdeklaration int main(int argc, char* argv[]) ist die Standardform der main-Funktion in der Programmiersprache C, wenn ein Programm Kommandozeilenargumente verarbeiten soll. Sie dient als Einstiegspunkt des Programms und ermöglicht es, Eingaben direkt beim Programmstart entgegenzunehmen.

Aufbau

Die Deklaration besteht aus drei wesentlichen Bestandteilen:

int main

Die Funktion main ist der Startpunkt jedes C-Programms. Der Rückgabewert vom Typ int signalisiert dem Betriebssystem, ob das Programm erfolgreich beendet wurde:

  • return 0; → erfolgreiche Ausführung
  • return != 0; → Fehlercode oder besondere Rückmeldung

int argc

Der Parameter argc steht für Argument Count und enthält die Anzahl der beim Programmstart übergebenen Argumente. Dabei wird der Programmname selbst als erstes Argument mitgezählt.

Beispiel:

./programm test 123

Dann gilt:

  • argc = 3

char* argv[]

Der Parameter argv steht für Argument Vector und ist ein Array aus Zeichenketten (Strings). Jedes Element zeigt auf eines der übergebenen Argumente.

Beispiel:

argv[0]  "./programm"
argv[1]  "test"
argv[2]  "123"

Das letzte Element argv[argc] ist immer NULL und markiert das Ende des Arrays.

Beispielprogramm

#include <stdio.h>

int main(int argc, char* argv[]) {
    printf("Anzahl der Argumente: %d\n", argc);

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

    return 0;
}

Wenn das Programm folgendermaßen aufgerufen wird:

./prog Hallo Welt

Ergebnis:

Anzahl der Argumente: 3
Argument 0: ./prog
Argument 1: Hallo
Argument 2: Welt

Umwandlung von Argumenten

Da alle Argumente in argv[] als Strings vorliegen, müssen sie bei Bedarf in andere Datentypen umgewandelt werden. Dazu können Funktionen aus der Standardbibliothek verwendet werden:

  • atoi() – Wandelt String in int
  • atof() – Wandelt String in double
  • strtol() – Wandelt String in long int (mit Fehlerkontrolle)

Beispiel:

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

int main(int argc, char* argv[]) {
    if (argc > 1) {
        int zahl = atoi(argv[1]);
        printf("Eingegebene Zahl: %d\n", zahl);
    } else {
        printf("Kein Argument übergeben.\n");
    }
    return 0;
}

Siehe auch

Quellen

  • ISO/IEC 9899:2018 (C18) – Programming Language C
  • Kernighan, Brian W.; Ritchie, Dennis M.: The C Programming Language. Prentice Hall, 1988.