Zoeken…


fork () systeemaanroep

fork() is een systeemaanroep. Fork wordt gebruikt om een onderliggend proces te maken van het actieve proces, dat een replica is van het bovenliggende proces (proces dat fork() uitgevoerd fork() ). Onderliggend proces is afgeleid van het bovenliggende proces. Zowel de ouder als het kind hebben verschillende adresruimte, elk onafhankelijk van de wijzigingen in de variabelen.

Het onderliggende proces heeft zijn eigen PID (procesidentificatie). PPID (ouderproces-ID) van kindproces is hetzelfde als PID van ouderproces.

Formaat:

Koptekstbestand: #include <unistd.h>
Functieverklaring: pid_t fork(void);

fork () heeft geen invoerargumenten nodig.

Als het onderliggende proces is gemaakt, wordt de pid van het onderliggende proces teruggezet naar het bovenliggende proces en wordt 0 teruggegeven in het onderliggende proces. Retourneer bij mislukking -1 zonder dat een proces is gemaakt.

Gebruiksvoorbeeld:

#include <stdio.h>
#include <unistd.h>

void child_process();
void parent_process();

int main()
{
    pid_t pid;
    pid=fork();
    if(pid==0)
        child_process();
    else
        parent_process();
    return 0;
}

/*getpid() will return the Pid of the 
  current process executing the function */

void child_process()
{
    printf("Child process with PID : %d  and PPID : %d ", getpid(),getppid());    
}

void parent_process()
{ 
    printf("Parent process with PID : %d", getpid());    
}

De volgorde van de printf instructies van het kind en de ouder hangt af van het planningsmechanisme dat puur afhankelijk is van het systeem.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow