Opkald til getpid -funktion i C med eksempler

Calling Getpid Function C With Examples



Getpid () er den funktion, der bruges til at hente proces -id'et for den proces, der kalder den funktion. PID'en for den indledende proces er 1, og derefter tildeles hver ny proces et nyt id. Det er en enkel tilgang til at få PID. Denne funktion hjælper dig kun med at få de unikke processer -id'er.

Funktioner, der bruges til at få id'er

To typer ID'er findes her. Den ene er den aktuelle id for processen PID. Mens den anden er id'et for den overordnede proces PPID. Begge disse funktioner er indbyggede funktioner, der er defineret i biblioteket. Når koden køres uden at bruge dette bibliotek, kan det forårsage en fejl og stoppe med at køre.







getpid () funktion i C

Når en proces dannes og kører, tildeles et unikt id det. Dette er proces -id. Denne funktion hjælper med at returnere id'et for den proces, der i øjeblikket kaldes.



getppid () funktion i C

Denne id er nyttig til at returnere processen med den overordnede proces/funktion.



Eksempel 1
At forstå eksemplet på PID i processen på C -sproget. Du har brug for to værktøjer: enhver teksteditor og Linux -terminalen, som du skal køre kommandoerne på. Opret en fil i enhver teksteditor. Vi har oprettet et filnavn code1.c, da koden er skrevet på C -sprog, så den skal gemmes med .c -udvidelsen.





Vi har tilføjet et enkelt bibliotek. Så starter hovedprogrammet her. I hovedprogrammet kalder vi den indbyggede funktion getpid (); at hente den aktuelle proces -id. Og en variabel introduceres og tildeles. Så værdien af ​​PID () -funktionen er gemt i denne variabel, så tager vi udskrivningen af ​​værdien ved hjælp af denne variabel.



Nu vil vi køre indholdet af denne fil i Linux -terminalen. Kodeforudsætningen skal først kompileres og derefter udføres. Til kompilering bruges GCC. Hvis dit system mangler GCC, skal du først installere det ved hjælp af Sudo -kommandoen.

Kompiler nu den skrevne kode. Dette kan opnås ved at bruge følgende kommando.

$ GCC –o kode1 kode1.c

Hvorimod –o bruges til at åbne gemningsfilen i kommandoen. Derefter efter –o skriver vi filnavnet.

Efter kompilering skal du køre kommandoen.

$ ./code1

Ovenstående billede viser proces -id'en for funktionen.

Eksempel 2
I det foregående eksempel gør vi brug af PID. Men i dette eksempel bruges både PID og PPID. Kildekoden for denne funktion er næsten den samme som den foregående. Kun der er endnu en tilføjelse af et id.

Overvej en fil, der indeholder to variabler i hovedprogrammet, der er tildelt af proces -id'erne. Den ene er af den aktuelle proces, og den anden er af den overordnede proces. Udskriv derefter begge id'erne gennem deres variabler på samme måde som det første eksempel.

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

Disse to er hovedfunktionerne i hele koden. Nu, efter filoprettelse, er det næste trin at kompilere og køre filen. Kompiler ved hjælp af GCC i kommandoen. Efter kompilering skal du køre det på Ubuntu -terminalen.

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

Outputtet viser, at proces -id først vises, og derefter vises det overordnede proces -id.

Eksempel 3
Alle processer kører og udføres parallelt. Forældrene og barnets processer udfører alle de resterende linjer samlet. Begge giver resultater ad gangen. Men ved at bruge en gaffel i C -koden, hvis denne funktion returnerer en værdi, der er mindre end 0, betyder det, at funktionsopkaldet afsluttes.

Overvej en ny fil med to biblioteker i det respektive overskrift. Her bruges en betingelse, hvor vi har brugt if-else-sætningen. I hovedprogrammet er det angivet, at hvis gaffelværdien er i -ive -værdi, viser den en meddelelse om, at procesens id er mislykket og ikke vil blive opnået. Hvis situationen er falsk, vil kompilatoren flytte til den anden del af betingelsen. I denne del opnås proces -id, så viser vi dette proces -ID og viser en meddelelse om, at proces -ID'et er opnået. Her citerer vi if-else-sætningen i kildekoden.

Nu igen, kompilér koden og kør den derefter.

./code2

Outputtet viser, at den anden del er blevet eksekveret og vil udskrive proces -id'et og derefter vise en PID -meddelelse.

Eksempel 4

Dette er et andet eksempel på at forklare det samme koncept. Funktionen Fork () returnerer to forskellige værdier. I tilfælde af en underordnet proces er værdien 0, som skal returneres. Samtidig er værdien i tilfælde af forældreprocessen proces -id for det nye barn.

I dette eksempel bruges den samme if_else -betingelse. Men her gælder to betingelser. Sammenligning af PID, der er mindre end nul, og den anden er lig med nul. Hvis PID er mindre end nul, viser den en fejlmeddelelse. Hvorimod hvis PID er lig nul, betyder det, at det er en underordnet proces, og den anden del viser, at hvis PID er større end nul, er det en overordnet proces.

Nu skal du kompilere og køre koden.

$ gcc –o code3 code3.c
$./kode3

Fra output kan vi se, at den anden del udskrives først betyder, at proces -id'et er større end 0.

Eksempel 5
Okay, dette er det sidste eksempel, hvor vi har forsøgt at opsummere alle de koder, der er beskrevet ovenfor for at forklare funktionen af ​​denne funktion. Vi kan også bruge loops med gaffel () -funktionerne til at bruge getpid () -funktionerne. Vi kan bruge loops til at oprette mange børneprocesser. Her skal vi bruge værdien 3 i sløjfen.

Igen skal vi bruge den betingede erklæring i koden. For -løkken starter fra den ene og gentages til den 3rdtur.

Gem nu filen og udfør den. Der er en anden enkel metode til kun at kompilere og eksekvere koden i en enkelt kommando. Det er.

$ GCC -koder5.c –o s & ./code5

Nu bevæger vi os mod kodens output. Id'et til forælderprocessen er identisk i alle underordnede processer. Det betyder, at alle disse processer tilhører en forælder. Disse processer udføres den ene efter den anden, da sløjfen er begrænset til 3. Kun 3 iterationer vil blive udført.

Konklusion

Denne artikel indeholder den grundlæggende viden og funktionen af ​​en getPID () -funktion i Linux -kommandoerne. Det unikke id tildeles hver proces gennem denne funktion.