Das ganze ist relevant für programme, die von irgendeiner Shell aufgerufen werden (DOS/Unix...)
die shell übergibt diese argv-Werte beim Aufruf, und der Returnwerte ist als Benachrrichtigung zu sehen, wie das ganze ausgegangen ist (z.B 0== ok, 1==fehler)
Beispiel Dos-Fenster
c:\>test.exe du bist ein programmierer

test.c

int main(int argc, char **argv)
{
int iX;
for (iX = 0; iX < argc; iX++)
printf("%02.2d : \"%s\"\n", iX, (char*)argv[iX]);

return (0); // success !
}

mfg robert

pS: wie du siehst, ist das erste argument immer der name des programmes selbst