Code:
void main (int BrArg,char *naziv[])
{
char izvor[12];
FILE *dat;
clrscr();
if (BrArg==1) //shta znachi sada ovo BrArg==1????
{
printf("\n Unesite naziv izvorne datoteke:");
scanf("%12s",izvor);
}
else strcpy(izvor,naziv[1]); //shta ovde znachi naziv[1]? zashto od [1]?
Neko se pavio pametan pa je menjao naziv main() argumenata.Neko nepisano pravilo je da se prvi argument zove int argc,drugi argv, a treci envp.
Kod tebe je enko kao prvi argument stavio BrArg sto je ustvari broj opcija predat programu + samo ime programa . Ako je broj argumenata == 1 (kao u ovm slucaju) to znaci da je samo ime programa predato programu.(malo zbunjujuce? )
#./blah voja je predator
./blah je prvi argument
voja je drugi
je treci
predator cetvrti argument
drugi argument ovog programa je naziv iliti argv tj. pointer na pointere stringova.
Stoga kao sto sam ti gore rekao :
naziv[0] == ./blah
naziv[1] == voja
naziv[2] == je
naziv[3] == predator
Naime ovaj program radi sledece :
If proverava da li je broj argumentana == 1 (ako je ==1) onda program nema opcije pa je potrebno popuniti izvor[] preko klasicnog user inputa koristeci scanf().Ali ako je predato nesto programu kao argument ( ./blah predator) onda to 'predator' prekopirati u izvor[] sa strcpy() jel je naziv[1] upravo prvi parametar programa (posle imena samog programa koje je naziv[0]);
[
Ovu poruku je menjao predator dana 06-16-2001 u 11:00 AM GMT]