Sök…


gaffel () systemsamtal

fork() är ett systemsamtal. gaffel används för att skapa en underordnad process från körprocessen, som är en kopia av överordnadsprocessen (Process som körde fork() ). Barnprocess härstammar från föräldraprocessen. Både förälder och barn har olika adressutrymme, var och en är oberoende av ändringarna i variablerna.

Barnprocessen har sin egen PID (processidentifiering). PPID (Parent Process ID) för barnprocessen är samma som PID för överordnad process.

Formatera:

Rubrikfil: #include <unistd.h>
Funktionsdeklaration: pid_t fork(void);

fork () behöver inga inmatningsargument.

Vid framgångsrik skapande av barnprocess returneras pid i barnprocessen till överordnadsprocessen och 0 returneras i barnprocessen. Vid misslyckande returnera -1 utan någon process skapad.

Exempel på användning:

#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());    
}

Sekvensen för printf uttalanden från barnet och föräldern beror på schemaläggningsmekanismen som helt beror på systemet.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow