Hva er gaffelsystemanrop i C ++

Hva er gaffelsystemanrop i C ++
De gaffel() er en systemanrop for å lage Create Child -prosessene ved hjelp av overordnet prosess. Når gaffel() brukes, dannes en ny barneprosess som er uavhengig av overordnet prosess og har sin egen lagrings- og ressursallokering.

I C ++, gaffel() Systemanrop dupliserer overordnet prosess for å produsere en ny barneprosess. Den er ansatt for å produsere en barneknute som er en perfekt kopi av overordnede noden, komplett med alle dens attributter, filsystembeskrivelser og lagringssteder. Det er nyttig i scenarier når en bruker ønsker å lage en forekomst av et program som allerede kjører på systemet, eller han/hun vil starte et nytt program.

Gaffelerklæring () i C++

De “Gaffel ()” Funksjon, som kommer fra UNIX/Linux -operativsystemer er ikke en del av standard C ++ -biblioteket, og det er derfor tilgjengelig via “Unistd.h ” headerfil.

#inkludere
pid_t gaffel ();

Returverdier i gaffelen ()

De gaffel() Funksjonen returnerer to verdier 0 og -1.

  • Det kan gi barneprosessavkastningsverdien som 0 mens du gir foreldreprosessen, etter vellykket gjennomføring, barnprosessens prosess -ID.
  • Den Returnerer en -1 verdi Når barneprosessen ikke er opprettet, og den automatisk genererer en feil.

Betydningen av gaffel () i C++

  • Ved bruk av gaffel (), Utviklere gjør parallellbehandling samtidig ved å lage flere prosesser.
  • Lar prosessen lage en klon av seg selv som kalles en barneprosess.
  • Det gjør oss i stand til å lage komplekse programmer med sikkerhet og bedre feiltoleranse.
  • Foreldre- og barneprosessene kjører samtidig.
  • Brukes til multitasking -applikasjoner.
  • Hjelper to forskjellige uavhengige prosesser med å kommunisere med hverandre.

Et enkelt eksempel på gaffel () i C++

Her er et eksempel på hvordan du bruker C ++ 's gaffel () funksjon vellykket:

#inkludere
#inkludere
ved hjelp av navneområdet STD;
int main ()

pid_t child_id = gaffel ();
if (child_id == -1)
Perror ("gaffel");
exit (exit_failure);

ellers hvis (child_id> 0)
cout << "Message from Parent process My child has process ID: " << child_id << endl;

annet
cout << "Message from Child Process: " << child_id ;

retur 0;

I eksemplet ovenfor gaffel() Metoden svarer i begge prosesser med ingen eller null argumenter. Som vist nedenfor output, er en barneprosess -prosess -ID overordnede prosesser, og selve barneprosessen returnerer 0. Foreldre returnerer -1 hvis ikke fungerer.

Produksjon

Konklusjon

Totalt sett gaffel() Systemfunksjon er en sterk funksjon som lar C ++ programmerere generere og kontrollere mange prosesser. Systemanrop gaffel() øker ytelsen til komplekse programmer og gjør det mulig å gjøre multiprosesser. Det tar null parametere og returnerer heltallverdier med tilsvarende prosesser.