C programozás

Az ATEXIT függvény használata C nyelven.

Az ATEXIT függvény használata C nyelven.
Ha folyamatot hajt végre Linux operációs rendszerében, és csak annyit szeretne, hogy a folyamat normál módon leálljon, akkor az atexit függvényt kell használnia a kódban. Az atexit függvény lehetővé teszi egy olyan funkció regisztrálását, amelyet a normál folyamatlezáráskor szoktak meghívni a kód végrehajtása előtt. Ez egy C könyvtár funkció. Ha ezt a függvényt többször hívják meg, akkor minden hívás más és más atexit függvényt határoz meg. Mindegyikük ellentétes sorrendben valósul meg veremként (i.e., az utoljára megadott funkciót kell először végrehajtani a kilépéskor). Ebben a cikkben megvitatjuk Önnel mindezek módszereit.

Megjegyzés: Az ubuntu 20-at fogjuk használni.04 az adott folyamat és annak atexit funkciójának végrehajtására.

Az atexit funkció működése:

Ez az létező funkció regisztrálja azt a függvényt, amelyet a fő folyamatban meg akar hívni. A program normál leállását okozza. A végrehajtás után, ha 0-val tér vissza, az azt jelenti, hogy a függvényhívás sikeres. Ha -1 vagy bármely más értéket ad vissza, akkor az atexit függvény nem hívta meg a regisztrált függvényt, ha bármilyen nyílt forráskódú fájl megnyílt. Ezzel szemben a befejezés, atexit funkció a végrehajtáskor bezárja az összes fájlt.

1. lépés: Hozzon létre egy szövegszerkesztőt a program megírásához:

Az atexit funkció végrehajtása előtt először is létre kell hoznia egy C nyelvi programot a Linux kiszolgáló szövegszerkesztőjében, a következő parancs használatával a Linux terminálon.

$ gedit

A „gedit” segédprogram megnyitása egy ideig eltart, majd ezt követően azonnal használhatja. Lehetővé teszi egy szövegszerkesztő megnyitását, amelybe beírhatja a kódot. A szövegszerkesztő az alábbi képhez hasonlóan jelenik meg:

2. lépés: kódoljon egy C programot az atexit funkció használatával a Szerkesztőben:

Az atexit függvény használatához először is egy egyszerű C nyelvi kódot kell írnia a függvény alkalmazásához. Az alábbi képen van egy C nyelvi kód, amelyben két funkció van, az egyik a fő osztályba tartozik, a másik pedig az atexist függvényhívásba van bejegyezve.

Mentse el ezt a fenti képkódot bármilyen névvel a kiterjesztési kód segítségével.c. Ez a formátum azt mutatja, hogy ez egy C nyelvi kód, és lehetővé teszi az alábbi C nyelv funkcióinak és könyvtárának bemutatását.

3. lépés: Végezze el a folyamatot a program kimenetének ellenőrzéséhez:

A kód végrehajtásához először is vissza kell térnie a Linux szerver termináljára. A végrehajtáshoz meg kell adnia a „gcc -o test” parancsot és a létrehozott C fájl nevét. Itt van az alábbi parancs:

$ gcc -o tesztkód.c

Ez hibát jelez, ha a gcc fordító nincs telepítve a rendszerbe.

Most telepítenie kell a gcc-t az „sudo apt install gcc” parancs megadásával a Linux terminálon, az alábbiak szerint:

Az Enter billentyű lenyomásával megkezdi a gcc telepítését a Linux szerverre. Ez eltart egy ideig; ezután arra kéri, hogy adja meg az igent / nemet. Igent kell beírnia; akkor megkezdi a gcc fordító letöltésének folyamatát az alábbi képen látható módon:

Amint telepítette a gcc fordítót Linux szerverére, sikeresen lefordíthatja benne a kódját. A végleges kimenet megszerzéséhez a. / teszt parancs az alábbiak szerint:

Ez a parancs megjeleníti a kód kimenetét. A kód kimenetét az alább idézett képen tekintheti meg.

Amint a fentiekből látható, az „Existing Sikeresen” a létrehozott függvény, amelyet az atexit függvény regisztrált és meghívott a program fő kódjában. Ez a kimenet azt mutatja, hogy a funkció sikeresen regisztrálva van. Ha nincs regisztrálva, akkor a kimenetet -1-nek adja.

Egy másik példa a több regisztrált függvényt használó atexit funkcióra:

Ha tisztábban szeretné tudni, hogy ez a függvény hogyan működik, akkor lehet egy másik példája, amely más kódfuttatást tartalmaz. Ismételje meg ugyanazt a folyamatot a fent említett kód megírásához, a „gedit” paranccsal nyissa meg a szövegszerkesztőt, és a kód megírása után mentse el bármilyen névvel, megemlítve a .c kiterjesztés. Amint az az alábbi képen látható, láthatja, hogy a több funkciót atexit függvény hívja meg ugyanabban a programban.

A fenti képen három üres függvény meghívása és regisztrálása látható a főkódban található atexit függvény használatával. A kód kimenetének megszerzéséhez ugyanazt a parancsot kell végrehajtania, mint korábban említettük. Nyissa meg a Linux kiszolgáló terminálját, és hajtsa végre a „gcc -o test” parancsot, valamint a korábban létrehozott fájlt. A kód sikeres összeállítása után a terminálon végre kell hajtania az alábbi idézett utasítást.

$ ./teszt

Itt láthatja, hogy mindhárom hívott funkció regisztrálva van és sikeresen működik.

Az „atexit” funkció néhány speciális felhasználása:

A fentiekben egy nagyon átfogó Linux kiszolgálót láttunk, amely az atexit függvényt használja a futtatott kód normalizálására és a kívánt atexit állapotra. Ha több funkciót regisztráltak a kód megszüntetése előtt, akkor több atexit függvényt kell használnia minden regisztrált függvény meghívásához.

Következtetés:

A cikk, amint azt korábban említettük, bemutatja az atexit függvény használatát a C nyelven. A gcc fordító segítségével fordítottuk le az atexit függvényhez tartozó példakódot a Linux szerveren. A fenti cikkben számos példa található az atexit függvény használatának megértésére és működésére a Linuxban. Most már csak annyit kell tennie, hogy kihasználja ezt a cikket az atexit funkció használatához a Linux szerveren.

AppyMouse képernyős Trackpad és egérmutató a Windows táblagépekhez
A táblagép-felhasználók gyakran hiányolják az egérmutatót, különösen akkor, ha szokták használni a laptopokat. Az érintőképernyős okostelefonok és táb...
Az egér középső gombja nem működik a Windows 10 rendszerben
A középső egérgomb segít átgörgetni a hosszú weboldalakat és a sok adatot tartalmazó képernyőket. Ha ez leáll, akkor a billentyűzet segítségével görge...
Hogyan lehet megváltoztatni a bal és jobb egérgombokat a Windows 10 PC-n
Elég általános, hogy az összes számítógépes egéreszközt ergonómikusan a jobbkezes felhasználók számára tervezték. De vannak olyan egéreszközök, amelye...