C++ Programmierung · 2 min read · Nov 20, 2025

Linux C Programmierung Tutorial Teil 22 - Zugriff auf Befehlszeilenargumente innerhalb eines C-Programms

Im vorherigen Tutorial haben wir mehrere Konzepte im Zusammenhang mit Zeigern in der Programmiersprache C besprochen. Eines der Konzepte, das wir diskutiert haben, war ein Array von Zeigern. Wir haben das Beispiel eines Integer-Zeiger-Arrays verwendet, um das Konzept zu demonstrieren.

Wie man auf Befehlszeilenargumente innerhalb eines C-Programms zugreift

Aber wie in diesem Tutorial erwähnt, kann ein Array von Zeigern aus verschiedenen Typen bestehen. Hier ist zum Beispiel ein Array von Zeichenzeigern:

char *arr[] = {"HowtoForge", "FaqForge", "Linux"};

Und hier ist ein kleines Programm, das zeigt, wie dieses Array verwendet werden kann:

#include   
  
int main()  
{  
 char *arr[] = {"HowtoForge", "FaqForge", "Linux"};  
   
 printf("\n %s", *arr);  
 printf("\n %s", *(arr+1));  
 printf("\n %s", *(arr+2));  
  
   
 return 0;  
}

‘arr’ ist die Adresse des ersten Elements dieses Arrays. Da dies ein Array von Zeigern ist, ist das erste Element (und alle anderen Elemente, die durch Hinzufügen von 1 und 2 zu arr erreicht werden) nichts anderes als eine Adresse. Um auf den Wert zuzugreifen, der an dieser Adresse gespeichert ist, verwenden wir den *-Operator.

Folgendes ist die Ausgabe dieses Programms:

HowtoForge   
FaqForge   
Linux

So greifen Sie auf Werte aus einem Array von Zeichenzeigern zu. Jetzt denken Sie wahrscheinlich, warum wir all dies besprochen haben?

Nun, wir haben es getan, weil dies uns zu einem weiteren wichtigen Konzept bringt, nämlich der Fähigkeit, auf Befehlszeilenargumente in Umgebungen zuzugreifen, die die Programmiersprache C unterstützen. Lassen Sie uns dies im Detail besprechen.

Wie Sie mittlerweile gut wissen sollten, ist ‘main’ die erste Funktion in Ihrem Programm, die aufgerufen wird, wenn das Programm ausgeführt wird. Sie wird mit zwei Argumenten aufgerufen: argc und argv. Während das erste Ihnen die Anzahl der Befehlszeilenargumente mitteilt, ist das zweite tatsächlich ein Array von Zeigern auf die Argumente selbst.

Bitte beachten Sie, dass der Name des Programms selbst als Argument an die Hauptfunktion übergeben wird. Daher ist die Anzahl der Argumente - dargestellt durch argc - um eins höher als die tatsächliche Anzahl der an das Programm übergebenen Argumente. Folgendes ist ein Beispiel:

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

Jetzt haben wir dieses Programm - genannt a.out und im ‘home’-Verzeichnis unseres Systems vorhanden - ohne Argumente ausgeführt. Und hier ist die Ausgabe:

 1   
 /home/a.out

Sie können sehen, dass der Ausführungsname des Programms als Argument übergeben wurde. Hätte ich den folgenden Befehl verwendet:

/home/a.out htf ff

Dann wäre in diesem Fall argc 3 gewesen und argv hätte Adressen der Zeichenfolgen ‘/home/a.out’, ‘htf’ und ‘ff’ enthalten.

Hier ist eine bessere Möglichkeit, das Programm zum Drucken der Argumente zu schreiben:

#include   
  
int main(int argc, char *argv[])  
{  
   for(int i=0; i

Es ist erwähnenswert, dass die Argumente in der Reihenfolge gespeichert werden, in der sie in der Befehlszeile übergeben werden.

Fazit

Sie werden wahrscheinlich auf mehrere Situationen stoßen, in denen Sie mit Befehlszeilenargumenten in Ihrem C-Code umgehen müssen. Was wir hier besprochen haben, sollte eine Grundlage für Sie bilden. Versuchen Sie, einige Programme auf Ihrer Seite auszuprobieren, um ein besseres Verständnis dafür zu bekommen, wie Befehlszeilenargumente innerhalb eines C-Programms zugegriffen werden.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.