Fork

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk

Fork() er et systemkall i operativsystemet Linux i programmeringsspråket C. Det benyttes i forbindelse med multi-threading, dvs. programmering med flere tråder. Kallet oppretter en ny barneprosess (child), som er en kopi av den prosessen det blir kalt fra (parent). Man kan så benytte den nye tråden til å utføre en annen oppgave, f.eks starte et delprogram eller lignende.


/* Kodeeksempel med bruk av fork()- hvor ny prosess starter firefox */

#include <stdio.h>
#include <unistd.h>
 pid_t = pid; // oppretter variabel som holder parent-pid (prosess identification number)
 pid = fork();    // lager kopi av nåværende prosess
 if (pid == 0 ) // forutsetning for at man er i child. 
  {
    printf("This is Child talking, child will now start Firefox for you..."); 
    system("Firefox");  
  }
 }