Pozivanje funkcije getpid u C s primjerima

Calling Getpid Function C With Examples



Getpid () je funkcija koja se koristi za dobivanje ID -a procesa koji poziva tu funkciju. PID za početni proces je 1, a zatim se svakom novom procesu dodjeljuje novi ID. To je jednostavan pristup dobivanju PID -a. Ova vam funkcija samo pomaže u dobivanju jedinstvenih ID -ova procesa.

Funkcije koje se koriste za dobivanje ID -ova

Ovdje su prisutne dvije vrste osobnih iskaznica. Jedan je trenutni ID procesa PID. Dok je drugi id PPID -a nadređenog procesa. Obje ove funkcije su ugrađene funkcije koje su definirane u knjižnici. Pokretanje koda bez korištenja ove knjižnice može uzrokovati pogrešku i prestati se izvršavati.







getpid () funkcija u C

Kad se neki proces formira i izvodi, dodjeljuje mu se jedinstveni ID. Ovo je ID procesa. Ova funkcija pomaže u vraćanju ID -a procesa koji se trenutno poziva.



getppid () funkcija u C

Ovaj je ID koristan za vraćanje procesa nadređenog procesa/funkcije.



Primjer 1
Za razumijevanje primjera PID -a u procesu na jeziku C. Potrebna su vam dva alata: bilo koji uređivač teksta i Linux terminal, na kojem biste trebali izvoditi naredbe. Izradite datoteku u bilo kojem uređivaču teksta. Napravili smo naziv datoteke code1.c jer je kôd napisan na jeziku C, pa ga treba spremiti s nastavkom .c.





Dodali smo jednu biblioteku. Tada počinje glavni program. U glavnom programu ugrađenu funkciju nazivamo getpid (); dohvatiti ID trenutnog procesa. Varijabla se uvodi i dodjeljuje. Tako da je vrijednost funkcije PID () pohranjena u ovoj varijabli, tada ćemo pomoću ove varijable uzeti ispis vrijednosti.



Sada želimo pokrenuti sadržaj ove datoteke u Linux terminalu. Preduvjet koda mora se prvo sastaviti, a zatim izvršiti. Za sastavljanje koristi se GCC. Ako vašem sustavu nedostaje GCC, morate ga prvo instalirati pomoću naredbe Sudo.

Sada sastavite napisani kod. To se može postići korištenjem sljedeće pridružene naredbe.

$ GCC - bez koda1 koda1.c

Dok se –o koristi za otvaranje datoteke spremanja u naredbi. Zatim nakon –o upisujemo naziv datoteke.

Nakon kompilacije pokrenite naredbu.

USD./kod1

Gornja slika prikazuje ID procesa funkcije.

Primjer 2
U prethodnom primjeru koristimo PID. No u ovom se primjeru koriste i PID i PPID. Izvorni kod za ovu funkciju gotovo je isti kao i prethodni. Samo postoji još jedan dodatak osobne iskaznice.

Razmotrimo datoteku koja sadrži dvije varijable u glavnom programu koje su dodijeljene ID -ovima procesa. Jedan je iz tekućeg procesa, a drugi iz nadređenog procesa. Zatim, slično prvom primjeru, ispišite oba ID -a kroz njihove varijable.

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

Ove dvije su glavne funkcije cijelog koda. Sada, nakon stvaranja datoteke, sljedeći korak je sastavljanje i pokretanje datoteke. Prevedite pomoću GCC -a u naredbi. Nakon kompilacije, pokrenite je na terminalu Ubuntu.

$ GCC - bez koda1 koda1.c
USD./kod1

Izlaz pokazuje da se prvo prikazuje ID procesa, a zatim ID matičnog procesa.

Primjer 3
Svi se procesi paralelno izvode i izvode. Roditeljski i podređeni procesi zajedno izvršavaju sve preostale retke. Oboje daju rezultate odjednom. No, pomoću vilice u C kodu, ako ova funkcija vrati vrijednost manju od 0, to znači da je poziv funkcije prekinut.

Razmislite o novoj datoteci koja ima dvije knjižnice u odgovarajućem zaglavlju. Ovdje se koristi uvjet u kojem smo koristili naredbu if-else. U glavnom programu navedeno je da će, ako je vrijednost vilice u –ivnoj vrijednosti, prikazati poruku da je ID procesa neuspješan i da se neće dobiti. Ako je situacija lažna, prevoditelj će prijeći na drugi dio uvjeta. U ovom dijelu dobiva se ID procesa, tada ćemo prikazati ovaj ID procesa i prikazati poruku da je ID procesa dobiven. Ovdje ćemo citirati if-else izjavu izvornog koda.

Sada ponovno sastavite kôd, a zatim ga pokrenite.

./kod2

Izlaz pokazuje da je drugi dio izveden i ispisat će ID procesa, a zatim prikazati PID poruku.

Primjer 4

Ovo je još jedan primjer objašnjavanja istog koncepta. Funkcija Fork () vraća dvije različite vrijednosti. U slučaju podređenog procesa, vrijednost je 0, koju treba vratiti. Istodobno, vrijednost u slučaju roditeljskog procesa je ID procesa novog djeteta.

U ovom primjeru koristi se isti if_else uvjet. No, ovdje se primjenjuju dva uvjeta. Uspoređujući PID koji je manji od nule, a drugi jednak nuli. Ako je PID manji od nule, prikazat će se poruka o pogrešci. Dok ako je PID jednak nuli, to znači da je to podređeni proces, a drugi dio pokazuje da ako je PID veći od nule, to je roditeljski proces.

Sada sastavite i pokrenite kôd.

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

Iz izlaza možemo vidjeti da se drugi dio prvo ispisuje što znači da je ID procesa veći od 0.

Primjer 5
U redu, ovo je zadnji primjer u kojem smo pokušali sažeti sve gore opisane kodove kako bismo objasnili rad ove funkcije. Također možemo koristiti petlje s funkcijama fork () za upotrebu funkcija getpid (). Možemo koristiti petlje za stvaranje mnogih podređenih procesa. Ovdje moramo upotrijebiti vrijednost 3 u petlji.

Opet moramo koristiti uvjetni izraz u kodu. For petlja počinje od one i ponavlja se do 3rdskretanje.

Sada spremite datoteku i izvršite je. Postoji još jedna jednostavna metoda za sastavljanje i izvršavanje koda samo u jednoj naredbi. To je.

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

Sada idemo prema izlazu koda. ID nadređenog procesa identičan je u svim podređenim procesima. To znači da svi ti procesi pripadaju jednom roditelju. Ti se procesi izvode jedan za drugim jer je petlja ograničena na 3. Bit će napravljene samo 3 iteracije.

Zaključak

Ovaj članak sadrži osnovno znanje i rad funkcije getPID () u naredbama Linuxa. Jedinstveni ID dodjeljuje se svakom procesu kroz ovu funkciju.