next up previous contents
Elõre: További magyarázatok Fel: C programozás a BORLAND Vissza: Folyam jellegû I/O

A main függvény

Minden C program kötelezõen tartalmaz egy main nevû függvényt. Definiálásának helye lényegtelen, akármelyik forrásfile tartalmazhatja tetszõleges elhelyezésben, a vezérlést a program indulásakor - a megfelelõ inicializáló rendszerrutin (startup kód ) lefutása után - mindenképp a main kapja meg.

A main visszatérési típusát kétféleképpen is meg lehet adni: int-nek és void-nak deklarálva. (Ne feledjük, ha nem adunk meg típust a definicióban, a fordító automatikusan int-et tételez fel.) A visszaadott érték, ha van, a program ún. státuszkódja lesz. Ezt a program futása után megvizsgálhatjuk a DOS-ban az ERRORLEVEL batch funkcióval.

Amennyiben programunkat nem a COMMAND.COM indította el, hanem egy másik felhasználói program hívta (lásd a spawn és exec függvénycsaládot a process.h include file-ban), akkor az megkapja a visszaadott státuszkódot, és felhasználhatja annak eldöntésére, hogy programunk sikeresen futott-e le, vagy sem. Megállapodás szerint a 0 státuszkód sikeres végrehajtást jelent, az ettõl eltérõ értékekkel pedig a hiba jellegét is lehet közölni (például fatális hiba, file-kezelési hiba, CTRL BREAK, stb.). Minden komolyabb programnak illik visszaadni státuszkódot - erre legtöbbször az exit függvényt használjuk (melyet szintén a process.h file-ban definiáltak). Ennek elõnye, hogy a hibát észlelõ bármely rutinból meghívható az exit, nem szükséges a vezérlést  -  a hibainformáció cipelésével  -  visszajuttatni a main-hez, bár sokszor elég nehéz megtalálni egy eldugott exit hívást.

A main meghívásakor 3 paramétert kap, de ezek közül csak annyit kell átvennie, amennyire ténylegesen szüksége van. Elhagyni azonban csak hátulról elõre haladva lehet a paraméterlistáról. A main komplett deklarációja:

            int main(int argc, char *argv[ ], char *env[ ]);
Az argc paraméter megadja a parancssorban átadott argumentumok számát. Az argv[ ] az egyes paramétereket tartalmazó sztringekre mutató pointerek tömbje, az env[ ] pedig az ún. környezeti változókat (environment variables) és értéküket tartalmazó sztringek mutatótömbje. Ha programunk neve PROG, akkor a
            SET KV=ALMA
            PROG alfa beta GAMMA
DOS parancssorok hatására a PROG-ban lévõ main paraméterei így alakulnak: Az n értéke függ attól, hogy milyen környezeti változók voltak már korábban definiálva (például PATH, COMSPEC, PROMPT). Az env tömb végét szintén a NULL értékû elem jelzi.


next up previous contents
Elõre: További magyarázatok Fel: C programozás a BORLAND Vissza: Folyam jellegû I/O