Thread fork und growisofs (12 answers)
Opened by cyborg0001 at 2011-03-31 10:30

GwenDragon
 2011-03-31 10:40
#147195 #147195
User since
2005-01-17
14577 Artikel
Admin1
[Homepage]
user image
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)
die Drachin Gwendolyn

View full thread fork und growisofs