Python OS išėjimas

Python Os Isejimas



„Python“ operacinės sistemos modulis siūlo įvairius perdavimo su operacine sistema įrankių. Šis modulis siūlo modulinį funkcijos naudojimo būdą, priklausantį nuo operacinės sistemos. Python programavimo kalboje naudojami įvairūs metodai, vienas iš jų yra „Python os exit“. Naudojant šią funkciją, galima užbaigti „Python“ procesą, esant tam tikrai būsenai, nevykdant valymo tvarkyklių ar praplovimo buferių, pavyzdžiui, naudojant „os fork()“ sistemos iškvietimą, kur ši funkcija paprastai naudojama antriniame procese.

Kompiuterio funkcija gali baigti jos vykdymą inicijuodama išėjimo sistemos iškvietimą daugelyje kompiuterių operacinių sistemų. Kelių gijų sistemoje išėjimas dažnai simbolizuoja veikiančios gijos nutraukimą. Operacinė sistema nuskaito išteklius, įskaitant failus ir atmintį, kad galėtų valdyti išteklius. Bet jei kalbėtume apie standartinį išėjimo būdą, tai tikriausiai būtų „sys.exit(n)“ metodas.







Sintaksė

Python OS išėjimo metodo sintaksė pateikta toliau:




Python OS išėjimo metodo sintaksė nustato du dalykus: pirmoji dalis nurodo proceso išėjimo būseną, o šis modulis nepateiks jokios reikšmės.



1 pavyzdys: „os._exit()“ metodo naudojimas norint išeiti iš kelių procesų neiškviečiant jokios valymo tvarkyklės

Išėjimo metodas gali būti naudojamas bet kurioje operacinėje sistemoje, pirmiausia „Windows“ arba „Linux“ operacinėse sistemose. Pirmajame pavyzdyje apžvelgsime kelis procesus, vykstančius kaip pirminis ir antrinis procesas, kai jis atlieka apdorojimą neiškviesdamas funkcijos ar programos valymo tvarkyklės. Šis modulis efektyviau veiktų „Linux“ operacinėje sistemoje. Gijos valymas „pop()“ su nuline reikšme vykdymo parametru iškviečia valymo tvarkyklę. Visos valymo procedūros, kurios buvo nustumtos, bet dar nepaleistos, ištraukiamos iš sanitarinių priemonių krūvos ir vykdomos paskutinio įėjimo ir pirmojo išleidimo (LIFO) tvarka, kai gija sustoja, tačiau šiame pavyzdyje to nereikėtų vadinti.






Žemiau paaiškinamas mūsų pirmojo Python OS išėjimo pavyzdžio kodo fragmentas:

Programa buvo inicijuota importuojant „os“ biblioteką, nes esame susirūpinę dėl sąlygų ir terminų susiejimo su mūsų įrenginio operacine sistema. Tada sukūrėme „PID“ ir „Python“ susiejome su „os“ biblioteka. Dabar naudojame sąlyginį teiginį, kai sąlyga „jei“ yra „PID didesnis nei 0“.



Po to panaudojome funkciją „print()“, kuri turi atspausdinti teiginį „\nApdorojama tėvinėje“, kur „\n“ naudojamas žymekliui perkelti į naują eilutę „if“ sąlygoje. Kintamasis „info“ inicijuojamas į „os.waitpid(pid,0)“ iškvietimą, kur „PID“ prasideda nuo „0“ intervalo. Toliau tęsdami „os.WIFEXITED()“ pritaikėme dar vieną sąlygą „jei“, kur jai suteikėme informacijos aprašą „1“. Jis saugo savo apdorojimo informaciją vartotojo apibrėžtoje „python_code“ funkcijoje, kurioje yra „Child Code to be Exit“ spausdinimo teiginys ir suteikia jai reikšmę „python_code“ funkcijoje „print()“.

Dabar pereiname prie mūsų „kitos“ sąlygos, kuri turi keturis spausdintus teiginius. Pirmosios funkcijos „print()“ teiginys yra „Apdorojama vaikas“. Antrasis spausdinimo teiginys yra „Apdorojimo ID:“ ir kartu jame yra „os.getpid()“ reikšmė – funkcija, kurioje yra Python kodo failas, skirtas antriniam apdorojimui. Trečiasis čia naudojamas spausdinimo teiginys yra „Ei, Python!“ ir ketvirtasis spausdintas teiginys yra „Vaiko apdorojimas egzistuoja! Galiausiai pritaikėme pagrindinį modulį, kad baigtume esamo failo, kuris yra „os._exit()“ ir kur kintamasis „os.EX_OK“ priskiriamas kintamajam „os.EX_OK“, programos vykdymo apdorojimą, negrąžinant jokios apdorojimo funkcijos.


Kadangi antrinis apdorojimas yra prioritetas, kai pirmiausia reikia paleisti ir išeiti iš pirminio apdorojimo, nes tam reikia daugiau laiko. Taigi, išvesties momentinė nuotrauka tiesiog rodo spausdinimo teiginius, kuriuos pateikėme ankstesniame kode, tačiau faile, kurį sukūrėme sistemoje, rodomas apdorojimo ID „78695“, kurį matome paskutinėje momentinėje kopijoje. Ir tada pirminio išėjimo apdorojimas būtų „0“, nes jis net nėra kruopščiai apdorojamas, nes tam reikia tvarkytojo.

2 pavyzdys: „os._exit()“ metodo naudojimas norint išeiti iš bendro proceso neišplaunant buferių

Šiame pavyzdyje apžvelgsime paprastą bendrąjį apdorojimo vykdymo baigimo reiškinį, atlikus jo intervalus nuo jo nuskaitymo sistemoje. Čia taip pat net nenaudojame praplovimo buferių, nes jie nėra reikalingi apdorojimui. Galų gale, „os._exit“ veiks efektyviau, norint išeiti iš proceso.


Pažiūrėkime į kodą, kuriame importavome Python biblioteką „os“. Programa prasideda for-ciklu, kai mes naudojame kintamąjį 'p', norėdami laikyti kai kuriuos duomenis ir nustatyti jo diapazoną į '6'. Po to kintamajam „p“ pritaikėme sąlygą „if“, kuri išlygina bendrus intervalus į „4“. Kadangi apdorojimo sistema prasideda nuo indekso „0“, ji vykdytų procesą nuo „0“ iki „4“. Kai tik bus suderinta sąlyga, ty „p“ reikšmė tampa lygi 4, programa vykdys kitą sakinį, kuris yra „print()“ funkcija, ir pateiks apdorojimo bloką „exit“. Paskutinėje eilutėje naudojome funkciją „os._exit()“, kad išeitume iš funkcijos pradėję nuo „0“ ir baigtume apdorojimą. Galų gale visos reikšmės, kurios po apdorojimo buvo išsaugotos kintamajame „p“, bus atspausdintos išvesties ekrane, nes naudojome funkciją „print()“, priskirdami jai kintamąjį „p“.


Išvesties ekrane būtų rodomi tik skaičiai „0“, „1“, „2“ ir „3“, nes tai yra keturi skaičiai, kurie pasiekiami po apdorojimo, o po to apdorojimas būtų išėjimas.

3 pavyzdys: „os._exit()“ metodo naudojimas norint išeiti iš proceso, kurio buferyje nėra

Kartais bandome perduoti kai kuriuos procesus, kuriuos sistemai nebuvo lengva atlikti apdorojimą arba sustabdyti dėl kokios nors priežasties – dažniausiai tada, kai konkrečios programos apdorojimo nėra dėl konkrečios medžiagos, bibliotekos ar failų paskirstymo. .


Pažvelkime į mūsų kodo fragmentą, kuriame kaip kintamąjį naudojome „Skaičiai“ ir nustatėme, kad jis būtų nuo „0“ iki „7“. Dabar pritaikėme sąlygą „jei“, kai „skaičiai“ prilygsta „5“ indeksams, o tada panaudojome teiginį „print()“, kad išspausdintume „išėjimo“ reikšmę. Vėliau panaudojome specialų modulį „raise SystemExit“, kad išeitume iš apdorojimo, pvz., „os._exit“, ir vėl panaudojome funkciją „print()“, kad parodytume skaičius, saugomus kintamajame „Numbers“, kai procesas baigtas.


Išvesties momentinė nuotrauka aiškiai parodys, kad po išėjimo naudojimo modulio nebus rodomos „Skaičių“ reikšmės. Kadangi nėra pagrindinės medžiagos, tokios kaip biblioteka ir inicijavimas, todėl apdorojus programą ji grįš „tuščia“ išvesties ekrane ir grįš neskaitant jokios reikšmės, arba gali būti, kad programa nevykdoma.

Išvada

Šiame straipsnyje aptarėme tris su Python OS išėjimo metodu susijusius pavyzdžius. Pirmajame pavyzdyje naudojome Python OS išėjimo modulį, kad išeitume iš antrinio proceso nenaudodami jokios praplovimo ir valymo tvarkyklės. Antrajame pavyzdyje mes panaudojome OS išėjimo modulį proceso išėjimui vienoje bendroje kodo programoje be buferio išplovimo. Trečiasis pavyzdys yra susijęs su nedalyvaujančio proceso, kurio šiuo metu nėra arba nesaugoma sistemoje, išjungimu.