14. september 2002 - 13:36Der er
9 kommentarer og 1 løsning
sleep() og fork()
Hello vi sidder og kæmper med lidt c, men vi kan ikke finde ud at bruge sleep() og fork(), og hvad de helt nøjagtigt gør. vores opgave lyder på at lave 11 barneprocesser. Hver gang en barneproces er skabt skal den vente i 2 sek., hvorefter den skal tælle til 10
sleep(x): Får en process til at sove (pause) i x antal sekunder
fork(): Laver en klon af processen, og fortsætter begge processer (originalen og klonen) fra det punkt hvor fork blev kaldt. Ved at undersøge fork's retur-værdi kan man finde ud af om det er originalen eller klonen: - I original-processen returnerer fork, process-ID'et for klonen. - I klon-processen returnerer fork værdien 0
printf("Venter 2 sekunder før vi fortsætter ;)\n"); sleep(2);
printf("Kloner processen, og begge fortæller hvem de er:\n"); procID = fork();
if(procID != 0) printf("Jeg er original-processen!\n"); else printf("Jeg er klon-processen!\n");
return 0; }
Jeg har løst selve opgaven, så hvis der er problemer skal vi nok finde ud af det ;) Vil bare ikke give en løsning hvis du/i selv vil finde ud af det. Kan dog røbe så meget at JEG har løst den med: 2 for-løkker 1 if-sætning 1 break
Hmm... Egentlig ikke helt sikker på om sleep pauser hele processen, eller om det kun er den aktuelle thread i processen. Men i det her tilfælde er det ligegyldigt for der arbejdes på processer, der kun har en thread hver.
Vi takker! Det var pænt af dig at svarer udover det første spørgsmål...
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.