bonjour,

j'ai un probléme de processus: j'ai un srcipt PERL qui lance un programme C dans un processus fils, son pere attent un certain délai (ici 3 seconde) si le fils est terminé il envoi une redirection vers une nouvelle page html contenant le résultat du prog C, et si le fils n'est pas terminé il envoie une page demandant de revenir plus tard...

voici le code que j'utilise:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
 
   $pid = fork();
 
   if($pid==0)
  {
      #prog c
  }
else{
   autoflush STDOUT 1;
    sleep(3);
    $kid = waitpid($pid,&WNOHANG);
    if($kid != 0)
    {
       	# chargement de la page de résultat
	print $html->end_html;
	print "<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=..></HEAD>";
    }
    else {
	# chargement d'une nouvelle page qui indique que le travail n'est pas encore terminé
	print $html->end_html;
	print "<HTML><HEAD><META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL= ...></HEAD></HTML>";
	wait;
    }
 
    print $html->end_html;
    exit;
}
si le prog C se termine avant le delai c ok la page de résulat se charge nikel, par contre le probléme c'est que si le prog c met plus de temps le pere n'envoi pas la balise méta pour changer de page avant que le fils ne soit terminé.

voila ci quelqu'un peut me sortir de cette embuche....

d'avance merci