Uvod
Pri otvaranju nove izvorne datoteke u razvojnim okruženjima kao što su Dev-C++ ili Code::Blocks, može se zapaziti sledeći programski kod (koji se tipično generiše automatski, ali, može se naravno upisati i 'ručno') ....
.... i mnogi mlađi programeri, koji se prvi put susreću sa dodatnim parametrima funkcije main
, često se pitaju šta (tačno) predstavljaju parametri argc
i argv
?
U pitanju su sledeći podaci:
- broj argumenata koji su predati preko komandne linije operativnog sistema (argument count)
- niz stringova koji je predat (argument vector).
Može se reći da predavanje argumenata preko komandne linije nije tipična operacija za korisnike koji su navikli na GUI okruženje u operativnom sistemu Windows (za razliku od, recimo, Linux-a i srodnih operativnih sistema, kod kojih je rad "u konzoli" i dalje veoma zastupljen), ali, opcija za predavanje argumenata preko konzole postoji na svim operativnim sistemima koje smo pomenuli - i veoma dobro dođe.
U svakom slučaju, osvrnućemo se na 'tehnikalije' ....
Prosleđivanje argumenata preko komandne linije
Da bismo razumeli kako funkcioniše predavanje, prijem i obrada argumenata, napisaćemo jednostavan program koji sabira dva uneta broja (a da bismo se što više usmerili na glavnu temu, neće biti provere ulaznih podataka).
Izvornoj datoteci daćemo naziv sabiranje.cpp
i unećemo u datoteku sledeći sadržaj:
Program se ovoga puta mora pokrenuti preko komandne linije operativnog sistema, * unošenjem sledeće komande:
.... pri čemu pokretanje programa proizvodi sledeći ispis:
Dakle, ako smo preko komandne linije uredno predali argumente i ako su argumenti uredno primljeni i obrađeni, na kraju dobijamo očekivani rezultat.
Detaljnija analiza
Razmotrićemo podrobnije neke od naredbi (objašnjenja su u komentarima):
Predavanje argumenata je nedvosmisleno korisna opcija (koja, recimo, dobro dođe kada pišemo skripte u okviru operativnog sistema i želimo da se podaci prosleđuju programima kao argumenti, preko konzole) i svakako ćemo se predavanjem argumenata preko konzole (tj. terminala), dodatno baviti i u budućim člancima ....
Napomena: Tekstovi, slike, web aplikacije i svi ostali sadržaji na sajtu
codeblog.rs (osim u slučajevima gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta
codeblog.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo drugo korišćenje u komercijalne svrhe, bez eksplicitnog pismenog odobrenja autora.