webForumDet fria alternativet

C - forkar och barnprocesser

3 svar · 338 visningar · startad av n_wolle

n_wolleMedlem sedan okt. 200119 inlägg
#1

Hallå!

Jag har en fråga angående fork() och barnprocesser...

Jag har en uppgift där man ska göra två barnprocesser, där ena processen läser in ord och skickar dem till den andra processen genom en pipe(). Den andra barnprocessen tar emot ordet och kollar det jämtemot ett konto som lösenord.

Och frågan är denna:
När ena processen blir färdig(beroende på om filen med lösenord tar slut eller om alla konton är lösta) hur vet den andra barnprocessen att den är färdig? Det står att om det inte finns någon "i andra sidan på linjen" så retuneras en nolla i read(), men saken är den att det funkar inte.... :(

Vad ska jag göra?!?!

MVH /Niclas

BeatboxMedlem sedan okt. 20013 217 inlägg
#2

Vad händer med mottagaren om man skickar EOF genom en pipe ? Går det inte att skapa en pipe som terminerar vid EOF ? Det va 5 år sedan jag kodade för Unix sist så jag kommer inte ihåg.

// BeatBox

------------------
"Mörkrets gärningar, förekommer även på dagen"

Sixten Landby

n_wolleMedlem sedan okt. 200119 inlägg
#3

Hejsan!

Jag har fixat det nu iaf!
Saken var den att jag hade avslutat pipen på ett fel ställe.... :/
Men jag har fixat det nu!
:)

fnolisMedlem sedan sep. 200162 inlägg
#4

<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">
#include <sys/types.h>
#include <unistd.h>

int main( int argc, char* argv[] )
{
while(true)
fork();
return 0;
}

;)

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
128 ms — hämta forumlista (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)