C Programiranje

Kodiranje vilicom i exec primjerom u c

Kodiranje vilicom i exec primjerom u c
Naslov našeg članka sadrži dvije različite funkcije jezika C koje se javljaju tijekom pokretanja bilo kojeg programa u našem sustavu. Nažalost, nula je mogućnosti da se istovremeno izvodi više od jednog programa na C-u. Samo se jedan zadatak može dogoditi u određeno vrijeme, što znači da ne dopušta pokretanje istodobnih programa. Uzrokuje vas da pričekate završetak jednog postupka da biste izvršili drugi. Da biste izbjegli ovaj problem, možda ćete trebati razviti svoj program na dobar način, budući da ste dobar programer. Linux fork () koristi se za prevladavanje čekanja i omogućavanje istodobnosti u vašem sustavu. Pomaže u dupliciranju novog postupka i stvara novi pozivanjem dupliciranog procesa. Novi proces je podređeni proces, a prethodni se naziva nadređeni proces.

Dok se funkcija exec () koristi za promjenu postojećeg postojećeg programa novim. Ta se zamjena vrši izmjenama i dopunama sadržaja programa ili datoteke. Dakle, različitost između fork i exec je u tome što fork stvara novi proces iz postojećeg procesa, a exec se koristi za zamjenu postojećeg programa stvaranjem novog.

Preduvjeti

Da bismo izvršili bilo koji c program na vašem Linux sustavu, na njega moramo instalirati neke preduvjete. Idite na terminal korištenjem metode prečaca Ctrl + Alt + T. Sada napišite sljedeće naredbe za instaliranje man stranica.

$ sudo apt install manpages-dev

Instalirat će sve odgovarajuće stranice.

Krećući se naprijed, da biste pokrenuli program na Linuxu, morate instalirati kompajler koda. To se koristi za sastavljanje koda i njegovo izvršavanje. U tu svrhu instalirat ćemo GCC spremišta u naš sustav.

$ sudo apt instalirati GCC

Kodiranje s exec u c

Kako smo instalirali stranice s uputama u Linux, upotrijebit ćemo sljedeću naredbu da bismo vidjeli opis vezan uz exec. Primarna sintaksa uzorka je kako slijedi:

Sintaksa

Exec (ime / datoteka datoteke, argv);

Ovdje smo upotrijebili „unistd.h ”zaglavlje jer sadrži sve informacije o obiteljima izvršne funkcije.

$ čovjek izvrš

Sada na gore citiranoj slici možete promatrati vrste exec. To su obitelji izvršnih funkcija. Svaka je za drugu funkciju koja slijedi istu bazu, „exec."

Primjer: Sada ćemo, krećući dalje, opisati funkcionalnost execa uz pomoć primjera. Uzet ćemo jednu funkciju exec-a da pokaže svoj rad, a to je „execv."Prvo ćemo stvoriti dvije datoteke s nastavkom".c.”Nakon njihovog stvaranja, u njih ćemo upisati odgovarajuće kodove i izvršiti ih da bismo vidjeli rezultat.

Razmotrite naziv datoteke „sample4.c ". Otvorite ga i upotrijebite sljedeći kod. U ovom kodu koristili smo execv na poseban način naveden u nastavku.

Execv („./ sample4copy ”, argumenti);

Prvi dio sadrži novu stazu direktorija, a drugi dio prikazuje niz argumenata kao parametar koji smo proslijedili.

Uzorak4.c

Prije svega, ispisali smo ID trenutnog postupka. Drugo, stvorili smo niz znakova koji na kraju za završetak ima NULL. Treće, pozvali smo funkciju sample4copy.

Uzorak4kopija.c

Kada pozovemo funkciju exec (), slika procesa se mijenja. Ispod citirane slike dolje prikazan je kod sample4copy.c.

Ovdje smo koristili samo iskaze za dobivanje ID-a trenutnog postupka.

Izlaz odgovarajućih kodova može se dobiti pomoću sljedećih naredbi.

$ GCC-o uzorak4 uzorak4.c
$ GCC -o sample4copy sample4copy.c
$ ./ sample4

Kao što smo ranije opisali, riječ "GCC" koristi se za sastavljanje koda, a nakon sastavljanja kôd se uspješno izvršava.

Prema slici, PID uzorka4.c datoteka se prikazuje prva onako kako je deklarirana prije exec poziva. Zatim nakon poziva funkcije exec (), oba ispisa ispisa datoteke sample4copy.c se izvršava tamo gdje se getpid () koristi za dobivanje id-a procesa.

Kodiranje vilicom u c

Funkcija fork () stvara podređeni proces iz nadređenog procesa. Sadrži i dva zaglavlja, uključujući podatke o rašljama.

Sintaksa:

Pid_t vilica (void);

Za pomoć u korištenju možemo koristiti man stranicu

$ man vilica

Primjer: Sada razmotrite primjer stvaranjem datoteke „sample3.c ". Kôd ćemo unijeti u datoteku. Prema kodu, postavili smo status vilice kao forkrank.

Uzorak3.c

Za primjenu uvjeta koristili smo izjavu "ako-drugo". Ovdje su deklarirane jednostavne naredbe za ispis koje pomažu u razumijevanju koncepta fork (). Forkrank se prvo deklarira kao 0, a zatim -1. S fork () sada postoje dva procesa koja rade istovremeno. Izlaz se može dobiti korištenjem istog koda, kao što je gore korišteno u primjeru exec.

$ GCC -o uzorak3.c
$./ sample3

Izlaz pokazuje da se podređeni proces izvršava ranije od nadređenog kada je nadređeni proces čekao. Funkcija čekanja podrazumijeva da uzrokuje da roditeljska funkcija čeka, osim ako nije prekinut jedan od svih podređenih procesa.

Fork i Exec pozivi sustava kolektivno

Ovdje ćemo uzeti dvije datoteke pod nazivom „sample1.c "i" uzorak2.c ". Prvo otvorite datoteku sampl1.c i napišite kod koji je dolje dodat na slici. Ovdje smo upotrijebili sistemski poziv fork (); kada se kreira podređeni proces, p će dobiti 0. Dok koristite exec sistemski poziv, sample1.c će biti zamijenjen sa sample2.c.

Uzorak1.c

Uzorak2.c

Slično gore spomenutim primjerima, datoteka sample2 sadržavat će ispise printf u sebi. U uzorku1.c, prvo se izvršava prva naredba ispisa, zatim se poziva funkcija vilice, kada je p == 0, zatim se izvršava podređeni dio i sample2.c datoteka će se pokrenuti. Izlaz će sadržavati GCC za kompajliranje obje datoteke. Ovdje roditeljski uzorak1.c id i uzorak2.c id je drugačiji jer su roditelj i dijete.

Zaključak

U ovom smo članku vilicu i exec koristili odvojeno i zajednički kako bismo lako razumjeli upotrebu i koncept. Nadam se da ovaj vodič sadrži dovoljno sadržaja koji će dovesti do pristupa u eskalaciji vašeg znanja.

Vodič za Shadow of the Tomb Raider za Linux
Shadow of the Tomb Raider dvanaesti je dodatak seriji Tomb Raider - franšizi u akcijsko-avanturističkoj igri koju je stvorio Eidos Montreal. I kritiča...
Kako pojačati FPS u Linuxu?
FPS je kratica Okviri u sekundi. Zadatak FPS-a je mjerenje broja sličica u reprodukcijama video zapisa ili igranim izvedbama. Jednostavnim riječima, b...
Najpopularnije laboratorijske igre Oculus App
Ako ste vlasnik slušalica Oculus, tada morate biti sigurni u bočno učitavanje. Bočno učitavanje postupak je instaliranja nehranjenog sadržaja na vaše ...