C programavimas

Kaip naudotis ATEXIT funkcija C kalba.

Kaip naudotis ATEXIT funkcija C kalba.
Jei atliekate procesą savo „Linux“ operacinėje sistemoje ir norite, kad procesas būtų nutrauktas įprastai, kode turite naudoti „atexit“ funkciją. „Atexit“ funkcija leidžia užregistruoti funkciją, kuri yra naudojama iškviečiant įprastą proceso nutraukimą prieš vykdant kodą. Tai C bibliotekos funkcija. Jei ši funkcija iškviečiama kelis kartus, kiekvienas skambutis nurodo skirtingą atexit funkciją. Jie visi yra įgyvendinami priešinga tvarka kaip kaminas (t.e., paskutinė nurodyta funkcija yra pirmoji, atliekama išvažiuojant). Šiame straipsnyje aptarsime būdus, kaip visa tai padaryti.

Pastaba: naudosime „ubuntu 20“.04 tam tikram procesui ir jo atleidimo funkcijai atlikti.

Atexit funkcijos veikimas:

Ši neegzistuojanti funkcija užregistruos funkciją, kurią norite jai paskambinti pagrindiniame procese. Tai sukelia įprastą programos nutraukimą. Po vykdymo, jei jis grąžina 0, tai reiškia, kad funkcijos iškvietimas yra sėkmingas. Jei ji grąžina -1 arba bet kurią kitą reikšmę, atexit funkcijai nepavyko iškviesti užregistruotos funkcijos, jei atidarytas koks nors atviro kodo failas. Priešingai, nutraukimo, atexit funkcija uždarys visus tuos failus vykdymo metu.

1 žingsnis: Sukurkite teksto rengyklę, kad parašytumėte programą:

Prieš atlikdami atexit funkciją, pirmiausia turite sukurti C kalbos programą savo „Linux“ serverio teksto rengyklėje naudodami šią komandą savo „Linux“ terminale.

$ gedit

„Gedit“ programos atidarymas užtruks šiek tiek laiko, o po to galėsite iš karto juo naudotis. Tai leis atidaryti teksto redaktorių, kuriame galėsite įrašyti savo kodą. Teksto redaktorius pasirodys kaip žemiau pateiktas vaizdas:

2 žingsnis: Koduokite C programą naudodami „Atexit“ funkciją teksto redaktoriuje:

Norėdami naudoti „atexit“ funkciją, pirmiausia turite parašyti paprastą C kalbos kodą, kad pritaikytumėte funkciją joje. Žemiau pateiktame paveikslėlyje yra C kalbos kodas, kuriame yra dvi funkcijos, viena yra pagrindinėje klasėje, o kita yra užregistruota neegzistuojančiame funkcijos iškvietime.

Išsaugokite šį aukščiau esantį vaizdo kodą naudodami bet kokį pavadinimą naudodami plėtinio kodą.c. Šis formatas rodo, kad tai yra C kalbos kodas, ir jis leidžia jums parodyti toliau nurodytų C kalbos funkcijas ir biblioteką.

3 žingsnis: Atlikite procesą, kad patikrintumėte programos išvestį:

Norėdami įvykdyti kodą, pirmiausia turite grįžti į „Linux“ serverio terminalą. Norėdami vykdyti, turite pateikti komandą „gcc -o test“ ir sukurto C failo pavadinimą. Toliau pateikiama komanda:

$ gcc -o bandymo kodas.c

Tai parodys klaidą, jei gcc kompiliatorius nėra įdiegtas jūsų sistemoje.

Dabar turite įdiegti „gcc“ suteikdami komandą „sudo apt install gcc“ savo „Linux“ terminale, kaip parodyta žemiau:

Paspaudus Enter klavišą, jis pradės diegti gcc jūsų „Linux“ serveryje. Tai užtruks šiek tiek laiko; po to ji paprašys įvesti taip / ne, tuo metu. Jūs turite įvesti taip; tada jis pradės rodyti gcc kompiliatoriaus atsisiuntimo eigą, kaip parodyta žemiau esančiame paveikslėlyje:

Kai tik įdiegsite gcc kompiliatorių savo „Linux“ serveryje, galėsite sėkmingai jame sukompiliuoti savo kodą. Norėdami gauti galutinį rezultatą, turite naudoti. / test komanda, kaip nurodyta toliau:

Ši komanda parodys jūsų kodo išvestį. Savo kodo išvestį galite peržiūrėti žemiau cituotame paveikslėlyje.

Kaip parodyta aukščiau, „Sėkmingai egzistuoja“ yra sukurta funkcija, kurią pagrindiniame programos kode užregistruoja ir iškviečia funkcija „atexit“. Šis išėjimas rodo, kad funkcija sėkmingai užregistruota. Jei jis nėra užregistruotas, jis suteiks išvestį kaip -1.

Kitas atexit funkcijos pavyzdys, naudojant kelias užregistruotas funkcijas, kurias reikia iškviesti:

Norėdami aiškiau žinoti, kaip ši funkcija veikia, galite turėti kitą pavyzdį su skirtingu kodo vykdymu. Pakartokite tą patį procesą, kad parašytumėte kodą, kaip minėta aukščiau, naudodami komandą „gedit“, kad atidarytumėte teksto redaktorių, o parašę kodą, išsaugokite jį bet kuriuo pavadinimu, paminėdami .c pratęsimas. Kaip parodyta toliau pateiktame paveikslėlyje, galite pamatyti, kad kelias funkcijas toje pačioje programoje iškviečia atexit funkcija.

Aukščiau pateiktame paveikslėlyje galite pamatyti, kaip iškviestos ir užregistruotos trys tuščios funkcijos, naudojant pagrindiniame kode esančią funkciją „atexit“. Norėdami gauti šio kodo išvestį, turite atlikti tą pačią komandą, kaip minėta anksčiau. Atidarykite „Linux“ serverio terminalą ir vykdykite komandą „gcc -o test“ kartu su anksčiau sukurtu failu. Sėkmingai sukompiliavę kodą, turite atlikti šią nurodytą instrukciją terminale.

$ ./ testas

Čia galite pamatyti visas tris iškviestas funkcijas, kurios yra užregistruotos ir sėkmingai veikia.

Kai kurie specifiniai funkcijos „atexit“ naudojimo būdai:

Aukščiau matėme labai išsamų „Linux“ serverį, kuris naudoja atexit funkciją, kad normalizuotų vykdomą kodą, ir norimą atexit būseną. Kai iki kodo nutraukimo yra užregistruotos kelios funkcijos, turite naudoti kelias atexit funkcijas, kad iškviestumėte kiekvieną užregistruotą funkciją.

Išvada:

Straipsnyje, kaip minėta anksčiau, parodoma „atexit“ funkcijos naudojimas C kalba. Mes naudojome kompiliatorių gcc, kad sudarytume kodo pavyzdį, susijusį su „atexit“ funkcija „Linux“ serveryje. Ankstesniame straipsnyje pateikiami keli pavyzdžiai, kaip suprasti „atexit“ funkcijos naudojimą ir kaip ji veikia „Linux“. Dabar viskas, ką jums reikia padaryti, tai pasinaudoti šio straipsnio pranašumais ir naudoti „atexit“ funkciją „Linux“ serveryje.

Kaip įdiegti ir žaisti „Doom“ sistemoje „Linux“
Įvadas į Doom „Doom“ serija atsirado 90-aisiais, išleidus originalų „Doom“. Tai buvo tiesioginis hitas, o nuo to laiko žaidimų serija gavo daugybę apd...
„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...