C Ohjelmointi

Koodaaminen haarukalla ja exec esimerkillä c

Koodaaminen haarukalla ja exec esimerkillä c
Artikkelimme otsikko sisältää kaksi erilaista C-kielen toimintoa, jotka tapahtuvat minkä tahansa järjestelmämme ohjelman suorittamisen yhteydessä. Valitettavasti C: ssä on nolla mahdollisuutta esiintyä useampi kuin yksi ohjelma kerrallaan. Vain yksi tehtävä voi tapahtua tiettynä ajankohtana, mikä tarkoittaa, että se ei salli samanaikaisten ohjelmien suorittamista. Se saa sinut odottamaan yhden prosessin loppuun saattamista suorittamaan toinen. Tämän vianmääritysongelman välttämiseksi sinun on ehkä kehitettävä ohjelmaa hyvällä tavalla, koska olet hyvä kehittäjä. Linux-haarukkaa () käytetään odottamisen voittamiseen ja samanaikaisuuden sallimiseen järjestelmässäsi. Se auttaa kopioimaan uutta prosessia ja luo uuden kutsumalla kopioidun prosessin. Uusi prosessi on aliprosessi, ja edellistä kutsutaan vanhempaprosessiksi.

Kun taas exec () -funktiota käytetään muuttamaan nykyinen ohjelma uudella. Tämä korvaaminen tehdään tekemällä muutoksia ohjelman tai tiedoston sisältöön. Joten haarukan ja execin välinen ero on, että haarukka luo uuden prosessin olemassa olevasta prosessista, ja execiä käytetään korvaamaan nykyinen ohjelma luomalla uusi.

Edellytykset

C-ohjelman suorittamiseksi Linux-järjestelmässä meidän on asennettava siihen joitakin edellytyksiä. Siirry päätelaitteeseen käyttämällä pikavalintamenetelmää Ctrl + Alt + T. Kirjoita nyt seuraavat komennot man -sivujen asentamiseksi.

$ sudo apt asenna manpages-dev

Se asentaa kaikki vastaavat sivut.

Eteenpäin, jotta voit suorittaa ohjelman Linuxissa, sinun on asennettava koodin kääntäjä. Sitä käytetään koodin kokoamiseen ja suorittamiseen. Tätä tarkoitusta varten asennamme GCC-arkistot järjestelmäämme.

$ sudo apt asentaa GCC

Koodaus execillä c: ssä

Kun olemme asentaneet man-sivut Linuxiin, käytämme seuraavaa komentoa nähdäksesi exec-kuvauksen. Ensisijaisen näytteen syntaksit ovat seuraavat:

Syntaksi

Exec (polun nimi / tiedosto, argv);

Tässä olemme käyttäneet "unistd.h ”-otsikko, koska se sisältää kaiken tiedon exec-funktioperheistä.

$ mies exec

Nyt yllä mainitussa kuvassa voit tarkkailla exec-tyyppejä. Nämä ovat exec-toimintojen perhe. Kukin on tarkoitettu eri toiminnolle, joka seuraa samaa perustaa, ”exec.”

Esimerkki: Nyt, siirtymällä pidemmälle, kuvailemme execin toimivuutta esimerkin avulla. Otamme yhden toiminnon exec osoittaaksemme sen toimivuuden, joka on “execv."Ensinnäkin luomme kaksi tiedostoa, joiden laajennus on".c.”Luomisen jälkeen kirjoitamme niihin koodit ja suoritamme ne nähdäksesi tuloksen.

Harkitse tiedoston nimeä “näyte4.c ”. Avaa se ja käytä seuraavaa koodia. Tässä koodissa olemme käyttäneet execv-ohjelmaa alla mainitulla tavalla.

Execv (“./ sample4copy ”, väittää);

Ensimmäisessä osassa on uusi hakemistopolku, ja toisessa osassa argumenttitaulukko näkyy parametrina, jonka olemme välittäneet.

Näyte 4.c

Ensinnäkin olemme tulostaneet nykyisen prosessin id: n. Toiseksi olemme luoneet merkistöryhmän, jonka lopettamista varten on NULL. Kolmanneksi olemme kutsuneet sample4copy-funktiota.

Näyte4kopio.c

Kun kutsumme exec-funktion (), prosessikuva muuttuu. Alla olevassa viittaetussa kuvassa näkyy sample4copy-koodi.c.

Tässä olemme käyttäneet vain tulostettuja lauseita saadaksemme nykyisen prosessin id: n.

Vastaavien koodien ulostulo voidaan saada käyttämällä seuraavia komentoja.

$ GCC-o näyte 4 näyte 4.c
$ GCC -o sample4copy sample4copy.c
$ ./ näyte 4

Kuten olemme aiemmin kuvanneet, koodin kääntämiseen käytetään sanaa "GCC", ja kääntämisen jälkeen koodi suoritetaan onnistuneesti.

Kuvan mukaan näytteen PID4.c-tiedosto näytetään ensin, kuten se ilmoitettiin ennen exec-puhelua. Sitten kun exec () -funktio on kutsuttu, molemmat tiedoston sample4copy tulostuslausekkeet.c suoritetaan missä getpid (): ää käytetään prosessin tunnuksen saamiseen.

Koodaaminen haarukalla c

Haarukka () -toiminto luo aliprosessin vanhemman prosessista. Se sisältää myös kaksi otsikkoa, mukaan lukien siinä olevat haarukkatiedot.

Syntaksi:

Pid_t-haarukka (mitätön);

Voimme käyttää man-sivua avuksi käytössä

$ mieshaarukka

Esimerkki: Tarkastellaan nyt esimerkkiä luomalla tiedosto “näyte3.c ”. Syötämme koodin tiedoston sisään. Koodin mukaan olemme asettaneet haarukan tilaksi forkrank.

Näyte 3.c

Olemme käyttäneet ehtoa sovellettaessa ”if-else” -lauseketta. Yksinkertaiset tulostuskomennot ilmoitetaan tässä haarukan () käsitteen ymmärtämisen helpottamiseksi. Forkrank ilmoitetaan ensin arvoksi 0 ja sitten -1. Haarukalla () on nyt kaksi prosessia, jotka toimivat samanaikaisesti. Tulos voidaan saada käyttämällä samaa koodia, jota käytetään yllä exec-esimerkissä.

$ GCC -o näyte 3.c
$./ näyte 3

Lähtö osoittaa, että aliprosessi suoritetaan aikaisemmin kuin vanhempi, kun vanhempaprosessi odotti. Odotustoiminto tarkoittaa, että se saa vanhemmistoiminnon odottamaan, ellei jokin lapsen prosesseista ole päättynyt.

Fork and Exec -järjestelmä kutsuu yhdessä

Täällä otamme kaksi tiedostoa nimeltä “näyte1.c ”ja” näyte2.c ”. Avaa ensin tiedosto sampl1.c ja kirjoita koodi, joka on liitteenä kuvassa. Olemme käyttäneet tässä haarukan () järjestelmäkutsu; kun aliprosessi luodaan, p: lle osoitetaan 0. Kun käytät exec-järjestelmäpuhelua, näyte1.c korvataan näytteellä2.c.

Näyte 1.c

Näyte 2.c

Samoin kuin edellä käsitellyissä esimerkeissä, sample2-tiedosto sisältää siinä olevat printf-käskyt. Näytteessä 1.c, ensimmäinen tulostuskomento suoritetaan ensin, sitten haarukkatoiminto kutsutaan, kun p == 0, sitten suoritetaan lapsiosa ja näyte2.c-tiedosto suoritetaan. Lähtö sisältää GCC: n molempien tiedostojen kokoamiseksi. Tässä vanhemman näyte1.c-tunnus ja näyte2.c-tunnus on erilainen, koska he ovat vanhempia ja lapsia.

Johtopäätös

Tässä artikkelissa olemme käyttäneet sekä haarukkaa että execiä erikseen ja yhdessä ymmärtämään käytön ja käsitteen helposti. Toivon, että tämä opetusohjelma sisältää riittävästi sisältöä, joka johtaa pääsyyn tietosi kasvattamiseen.

Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...
Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...