Hi,
Doch dieses:
int main (int argc, char *argv[])
kapiere ich nicht ganz, sind dieses argc und argv Argumente deren namen ich frei wählen kann?
Den Namen darfst du frei wählen, ja, aber du darfst die Funktion nicht verändern. Es gäbe auch keinen Grund, diese zu verändern, denn argc sagt dir, wieviele Argumente dem Programm übergeben wurde, wobei (Achtung!) der Programmname selbst das erste Argument ist, und argv ist ein Array von Zeigern auf char, mit dem du die per Kommandozeile übergebgenen Argumente bekommst. Wenn du dich mit Zeigern ausreichend beschäftigt hast, wirst du verstehen, warum das so funktioniert.
Hier ein kleines Testprogramm:
#include <stdio.h>
int main(int argc, char *argv[]) {
if (argv[1] != NULL) {
printf("argc = %d argv = %s\n", argc, argv[1]);
}
return 0;
}
Rufst du dieses Programm nun mit ./programmname test auf, zeigt es dir sehr schön, dass du insgesamt 2 Argumente hast (Programmname und "test"), und, was in argv[1] steckt, nämlich das 2. Argument. argv[0] wäre der Programmname selbst.
Markus