Good to Know Database

C: Argumente an ein C-Programm übergeben


In vielen Fällen ist es wichtig, dass man einem Programm Argumente für die Verarbeitung übergeben kann. Das folgende Beispiel soll Ihnen zeigen wie Sie in C auf Argumente zugreifen können.

Erstellen Sie für dieses Beispiel mit einem Texteditor eine neue Quellcode-Datei mit dem Namen hello.c.

georg@ubuntu1204:~$ vi hello.c

In diese neue Datei können Sie jetzt den folgenden C-Quellcode einfügen.

#include <stdio.h>

int main(int argc,char *argv[])
{
  //check arguments
  if(argc!=2)
  {
    printf("Usage: hello <your name>\n");
    return 1;
  }

  //print hello message
  printf("Hello %s!\n",argv[1]);

  return 0;
}

Wie Sie hier sehen, werden dem Hauptprogramm main() zwei Parameter übergeben. Der erste Parameter argc (Argument Count) ist vom Typ int und enthält die Anzahl der Argumente. Die Argumente selbst werden durch den zweiten Parameter argv (Argument Vector) übergeben, welcher ein String-Array vom Typ char ist.

Das hier gezeigte Programm überprüft ob ein Argument beim Aufruf des Programms übergeben wurde. Da auch das Programm als Argument gezählt wird, wird ein Benutzungshinweis ausgegeben und das Programm mit einem Rückgabewert von 1 beendet, wenn in der Varable argc ein Wert ungleich 2 enthalten ist.

Ist die Prüfung erfolgreich verlaufen, wird mittels printf() ein String ausgegeben. In diesen String wird der Inhalt aus der Array-Variablen argv[1] eingefügt. Danach wird das Programm mit dem Rückgabewert 0 beendet.

Nachdem Sie das C-Programm in die Datei eingefügt und gespeichert haben, müssen Sie dieses mit einem C-Compiler übersetzten. Unter Linux verwenden Sie hierfür den Befehl gcc.

georg@ubuntu1204:~$ gcc hello.c -o hello

Wenn Sie das kompilierte Programm ohne ein Argument aufrufen wird der folgende Benutzungshinweis angezeigt.

georg@ubuntu1204:~$ ./hello
Usage: hello <your name>

Geben Sie Ihren Namen als Argument an, erhalten Sie hingegen eine persönliche Begrüßung angezeigt.

georg@ubuntu1204:~$ ./hello Georg
Hello Georg!


Dieser Eintrag wurde am 30.11.2013 erstellt.

Direkter Link zu dieser Seite: http://www.gtkdb.de/index_38_2426.html

[ Zur Startseite ]   [ Zur Kategorie ]


Valid XHTML 1.0 Transitional Valid CSS Valid Atom 1.0

© 2004-2018 by Georg Kainzbauer