Funktsiooni getpid helistamine C -s näidetega

Calling Getpid Function C With Examples



Getpid () on funktsioon, mida kasutatakse selle funktsiooni kutsuva protsessi protsessi ID saamiseks. Esialgse protsessi PID on 1 ja seejärel määratakse igale uuele protsessile uus ID. See on lihtne viis PID -i saamiseks. See funktsioon aitab teil saada ainulaadseid protsesside ID -sid.

Funktsioonid, mida kasutatakse ID -de saamiseks

Siin on kahte tüüpi ID -sid. Üks on protsessi PID praegune ID. Teine on emaprotsessi PPID ID. Mõlemad funktsioonid on sisseehitatud funktsioonid, mis on raamatukogus määratletud. Koodi käitamine seda teeki kasutamata võib põhjustada tõrke ja lõpetada täitmise.





getpid () funktsioon C -s

Kui mõni protsess on moodustatud ja töötab, määratakse sellele kordumatu ID. See on protsessi ID. See funktsioon aitab tagastada praegu kutsutud protsessi id.



funktsioon getppid () C -s

See ID on kasulik emaprotsessi/funktsiooni protsessi tagastamisel.



Näide 1
PID -i näite mõistmiseks protsessis C -keeles. Teil on vaja kahte tööriista: mis tahes tekstiredaktorit ja Linuxi terminali, millel peaksite käske käivitama. Looge fail mis tahes tekstiredaktoris. Oleme loonud failinime code1.c, kuna kood on kirjutatud C -keeles, seega tuleks see salvestada laiendiga .c





Lisasime ühe raamatukogu. Siis algab põhiprogramm. Põhiprogrammis nimetame sisseehitatud funktsiooni getpid (); praeguse protsessi ID toomiseks. Ja sisse tuuakse ja määratakse muutuja. Nii et funktsiooni PID () väärtus salvestatakse sellesse muutujale, siis prindime selle muutuja abil väärtuse välja.



Nüüd tahame selle faili sisu Linuxi terminalis käivitada. Koodi eeltingimus on kõigepealt kompileerida ja seejärel käivitada. Kompileerimiseks kasutatakse GCC -d. Kui teie süsteemil puudub GCC, peate selle kõigepealt installima, kasutades käsku Sudo.

Nüüd koostage kirjutatud kood. Seda saab teha järgmise käsu abil.

$ GCC –o kood1 kood1.c

Kusjuures –o kasutatakse käsus salvestusfaili avamiseks. Seejärel kirjutame failinime pärast –o.

Pärast kompileerimist käivitage käsk.

$ ./code1

Ülaltoodud pilt näitab funktsiooni protsessi ID -d.

Näide 2
Eelmises näites kasutame PID -d. Kuid selles näites kasutatakse nii PID -d kui ka PPID -d. Selle funktsiooni lähtekood on peaaegu sama, mis eelmisel. Ainult on veel üks ID lisamine.

Mõelge failile, mis sisaldab põhiprogrammis kahte muutujat, mis on määratud protsessi ID -dega. Üks on praegusest protsessist ja teine ​​vanemprotsessist. Seejärel printige sarnaselt esimesele näitele mõlemad ID -d nende muutujate kaudu.

Int pid_t = getpid ();
Int ppid_t = getppid ();

Need kaks on kogu koodi põhifunktsioonid. Nüüd, pärast faili loomist, on järgmine samm faili kompileerimine ja käivitamine. Kompileerige, kasutades käsus GCC -d. Pärast kompileerimist käivitage see Ubuntu terminalis.

$ GCC –o kood1 kood1.c
$ ./code1

Väljund näitab, et esmalt kuvatakse protsessi id ja seejärel kuvatakse algprotsessi id.

Näide 3
Kõik protsessid töötavad ja toimivad paralleelselt. Vanem ja alamprotsessid täidavad kõik ülejäänud read ühiselt. Mõlemad annavad tulemusi korraga. Kui kasutate C -koodis kahvlit, kui see funktsioon tagastab väärtuse, mis on väiksem kui 0, tähendab see, et funktsioonikõne lõpetatakse.

Mõelge uuele failile, mille päises on kaks teeki. Siin kasutatakse tingimust, mille korral oleme kasutanud lauset if-else. Põhiprogrammis on öeldud, et kui kahvli väärtus on in -value, kuvatakse see teade, et protsessi ID on ebaõnnestunud ja seda ei saada. Kui olukord on vale, liigub kompilaator tingimuse teise osa juurde. Selles osas saadakse protsessi ID, seejärel kuvame selle protsessi ID ja kuvame teate, et protsessi ID on saadud. Siin tsiteerime lähtekoodi if-else lauset.

Nüüd kompileerige kood uuesti ja käivitage see.

./kood2

Väljund näitab, et teine ​​osa on täidetud, ja prindib protsessi ID ning kuvab seejärel PID -teate.

Näide 4

See on veel üks näide sama mõiste selgitamisest. Funktsioon Fork () tagastab kaks erinevat väärtust. Alamprotsessi puhul on väärtus 0, mis tuleb tagastada. Samal ajal on vanemprotsessi puhul väärtuseks uue lapse protsessi ID.

Selles näites kasutatakse sama if_else tingimust. Kuid siin rakendatakse kahte tingimust. Võrreldes PID -d, mis on väiksem kui null, ja teine ​​võrdub nulliga. Kui PID on väiksem kui null, kuvatakse veateade. Kui PID võrdub nulliga, tähendab see, et see on alamprotsess, ja teine ​​osa näitab, et kui PID on suurem kui null, on see algprotsess.

Nüüd kompileerige ja käivitage kood.

$ gcc –o kood3 kood3.c
$./kood3

Väljundist näeme, et muu osa prinditakse kõigepealt välja, tähendab, et protsessi ID on suurem kui 0.

Näide 5
Olgu, see on viimane näide, milles oleme püüdnud kokku võtta kõik ülalkirjeldatud koodid, et selgitada selle funktsiooni toimimist. Funktsioonide getpid () kasutamiseks võime kasutada ka silmuseid koos kahvli () funktsioonidega. Me saame kasutada silmuseid paljude alamprotsesside loomiseks. Siin peame kasutama silmuse väärtust 3.

Jällegi peame koodis kasutama tingimuslauset. For -tsükkel algab ühest ja kordab kuni 3rdpööre.

Nüüd salvestage fail ja käivitage see. On veel üks lihtne meetod koodi koostamiseks ja käivitamiseks ainult ühe käsuga. See on.

$ GCC koodid5.c –o s & ./code5

Nüüd liigume koodi väljundi poole. Vanemprotsessi id on kõigis alamprotsessides identne. See tähendab, et kõik need protsessid kuuluvad ühele vanemale. Need protsessid viiakse läbi üksteise järel, kuna tsükkel on piiratud 3. Tehakse ainult 3 iteratsiooni.

Järeldus

See artikkel sisaldab põhiteadmisi ja funktsiooni getPID () toimimist Linuxi käskudes. Selle funktsiooni kaudu määratakse igale protsessile kordumatu ID.