linux-kernel
Gaffelsystem samtal
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.