webForumDet fria alternativet

C - forkar och barnprocesser

C/C++

3 svar · 340 visningar · startad av n_wolle

Medlem sedan okt. 200119 inlägg
Frågan#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

Medlem 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

Medlem 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!
:)

Medlem 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;
}

;)

287 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
153 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)