Bonjour à tous,
Voilà, après avoir lu la faq sur fork (merci pour ça), j'ai tenté la chose suivante pour faire un compteur (dans un premier temps):
Mais j'obtiens l'erreur suivante:
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
29
30
31
32
33 $timeout=30; &NewPid; sub NewPid() { defined($pid = fork) or die "Pas de fork possible : $!"; unless($pid) { $time=$timeout; while($time>0) { system("cls"); print "Il vous reste: $time\n secondes"; $time=&Decompte($time); } } waitpid($pid, 0); } #Retour au père; sub Decompte() { $decompte=$_[0]; $decompte=$decompte-1; sleep(1); return $decompte; }
Bien sûr quand je clique sur ok, ça ferme le programme et quand ej clique sur annuler, ça me dit:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 L'instruction à "0x2806c0f9" emploie l'adresse mémoire "0xabababb3". La mémoire ne peut être read. Clique ok pour terminer le programme. Cliquez sur annuler pour débogue rle programme
Voilà, qu'est-ce qui ne va pas dans mon script ????
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 perl a généré des erreurs et windows va fermé perl
Merci pour vos réponses
PS: A noter que je n'ai pas d'erreur et que ça fonctionne bien lorsque je fais:
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
29 $timeout=30; defined($pid = fork) or die "Pas de fork possible : $!"; unless($pid) { $time=$timeout; while($time>0) { system("cls"); print "Il vous reste: $time\n secondes"; $time=&Decompte($time); } } waitpid($pid, 0); #Retour au père; sub Decompte() { $decompte=$_[0]; $decompte=$decompte-1; sleep(1); return $decompte; }
Partager