Thread fork und growisofs
(12 answers)
Opened by cyborg0001 at 2011-03-31 10:30
Dir ist nicht klar, dass das fork auch fehlschlagen kann.
Es liefert dabei undef als Rückgabewert. Du vergleichst in deinem Code in Zeile 3 undef mit 0. undef ist mit 0 verglichen immer wahr: ~ perl -e "print undef==0" 1 Vorschlag: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 $pid_c=fork(); #create child as working slave if (defined $pid_c) { if ($pid_c==0) #child process does the job { system("growisofs -Z $device=$isofile >$tmpfile 2>&1"); exit; } else #parent job only does output { for(;;) { select(undef,undef,undef,0.1); #sleep for 0.1 sec # Fortschritt abprüfen... if (kill(0,$pid_c)==0) { last; #child finished; go on } } } } else { die ("Cant fork!"); } //EDIT2: Wenn dir wichtig ist, wo der Ausfruf von system hakte, solltes du die Doku zu system und $? lesen. Last edited: 2011-03-31 10:55:12 +0200 (CEST) |