Mit jelent a nullára való visszatérés a C nyelvben?


Legjobb válasz

Feltételezem, hogy a „main ()” funkcióról beszél?

UNIX / Linux rendszerben, ahol a C-t kitalálták (és esetleg más operációs rendszerekben), amikor egy program kilép, visszatér egy „exit állapot” -ba, amelyet a futtatni indító rendszer használhat annak megmondására, hogy sikerült-e vagy sem.

A nulla visszaadott eredmény azt jelenti, hogy „Minden jól működött!” – a nem nulla eredmény valamilyen hibakódot jelez.

Ezt nem nagyon használják (ha egyáltalán) olyan grafikus környezetekben, ahol az emberek egy ikonról vagy valamiről indítanak programokat. De a parancssori alkalmazásokban ez istenfélelem.

Vegyük például a „make” eszközt – amely a bonyolult alkalmazások összeállításához és összekapcsolásához használható. A különféle fordítók és linkelők egy „return 0” értéket adnak meg, amikor a program, amelyen dolgoznak, megfelelően fordítottak – vagy pedig „1-et adnak vissza”, ha nem fordított.

A „make” program megvizsgálja a visszatérést minden futtatott program állapota – és megszakítja a felépítést, ha az egyik nullától eltérő értéket ad vissza.

Ez nagyon hasznos dolog.

Tehát van egy programom, amit írtam végez némi képfeldolgozást. Ha az olvasott fájl sérült, akkor egy „return 2” értéket ad meg – ha a fájl nem létezik, akkor egy „return 1” értéket ad, és csak akkor, ha minden rendben működik, akkor a „0-t adja vissza”.

Most – ha valami bonyolult programot kell készítenem, amelynek képei vannak a kiadási csomagba -, akkor a Makefile-m kiválthatja a képfeldolgozó programot – és ha valamilyen oknál fogva nem sikerül – megszakítja a „make” futtatást, így én kijavíthatja.

Az összes UNIX / Linux parancssori eszköz nem nulla értéket ad vissza hiba esetén – tehát akkor is, ha csak a szokásos „rm” programot használja egy fájl törlésére – „Return 0”, ha a fájl sikeresen törölve volt, vagy „return 1”, ha azt bármilyen okból nem lehetett törölni.

Néhány program különböző kódokat ad vissza attól függően, hogy mi is hibázott pontosan – de ez meglehetősen szokatlan.

Vegye figyelembe azt is, hogy amikor meghívja az „exit (0)” funkciót – a „0” paraméter egyben a visszatérési állapot is … tehát tegye meg az „exit (0)” funkciót is, ha a dolgok remekül működnek és exit (1) ”, ha nincsenek.

Válasz

Ott a sok különböző helyen végezhet el egy return 0 utasítást C-ben, ezért ez a kérdés sokféle választ fog kapni.

Hagyd egy konkrét esetre válaszolok:

int main(int argc, char *argv[])

{

...

return 0;

}

Miért térünk vissza 0-ról a main-ról?

Az operációs rendszerek * IX családjában, amelyet először az UNIX, majd a Linux példáz, egyetlen egész kilépési kóddal rendelkező program létezik, névlegesen a siker vagy a kudarc jelzésére szolgál.

A legtöbb esetben a 0 érték a sikert, a nem nulla érték pedig hiba, az érték általában bizonyos hibainformációkat mutat.

A * IX rendszereken futó C és C ++ programok ezt a kilépési kódot vagy a standard könyvtár exit () függvénynek továbbított egész számmal, vagy az egész számmal adják meg. visszatért a main () .

Tehát ebben az esetben 0-t adunk vissza a main-ból, hogy jelezzük a * IX rendszereknek, hogy a program sikeres kóddal zárult.

-Mark

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük