os.waitstatus_to_exitcode ( )
DESCRIPTION.
Convertit un signal d'attente en signal de sortie.
SYNTAXE.
os.waitstatus_to_exitcode ( statut )
os.waitstatus_to_exitcode ( ) ⇨ appel de la méthode [ OBLIGATOIRE ]
statut ⇨ nouveau status [ OBLIGATOIRE ]
REMARQUES.
statut, n'est disponible, que sous UNIX, est doit être l'une des valeurs suivantes :
- os.WCONTINUED, force le processus enfant a être reporté s'il à été continué après un arrêt ;
- os.WNOHANG, avec os.waitpid ( ) termine si aucun statut pour l'enfant n'est disponible.
- os.WUNTRACED, force le processus enfant a être reporté s'ils à été stoppé mais que leur état n'est reporté.
Sous Unix. Si le processus s'est terminé normalement, si WIFEXITED ( status ) = True, retourne l'état de sortie du processus, WEXITSTATUS ( status ), un int ( ) supérieur ou égal à 0. Si le processus s'est terminé par un signal,si WIFSIGNALED ( status ) = True, retourne - l'inverse du numéro du signal qui a provoqué la fin du processus, 'est-à-dire -WTERMSIG ( status ), un int ( ) inférieur à 0.
Sous Windows. L'état de retour est décalé de 8 bits vers la droite.
Sous Unix, si le processus est tracé ou si os.waitpid ( ) a été appelé avec l'option os.WUNTRACED, l'appelant doit d'abord vérifier si WIFSTOPPED ( status ) = True car cette fonction ne doit pas être appelée si WIFSTOPPED ( status ) = True.
Voir aussi os.WIFEXITED ( ), os.WEXITSTATUS ( ), os.WIFSIGNALED ( ), os.WTERMSIG ( ), os.WIFSTOPPED ( ) et WSTOPSIG ( ) qui analyse la disposition d'un processus.
EXEMPLE.
import os
kenfant = os.fork ( )
if kenfant > 0 : # si le processus en cours n'a pas retourné 0 c'est le père qui été chargé dans le CPU
print ( "Le PARENT" , os.getpid ( ) , "est en cours ... " )
print ( "Je patiente, mon enfant exécute sa tache ..." )
print ( )
kretour = os.wait ( )
os.waitstatus_to_exitcode ( os.WCONTINUED )
print ( "Mon enfant" , kretour [ 0 ] , "a fini ..." )
print ( "Le signal de sortie de mon enfant est" , kretour [ 1 ] )
print ( "Le PARENT" , os.getpid ( ) , ": Ce processus est terminé ... " )
else : # si le processus en cours a retourné 0 c'est le fils qui été chargé dans le CPU
print ( "L'ENFANT" , os.getpid ( ) , "travail ..." )
for kvaleur in range ( 6 ) : print ( "L'ENFANT" , os.getpid ( ) , ": C'est toujours les mêmes qui travaillent ..." )
print ( )
Une fois enregistré, ce script doit être lancé depuis un terminal Linux avec la commande :
python /chemin/monscrip.py (où /chemin/monscrip.py est le nom de votre script avec son chemin).
Pour une meilleur compatibilité, chemin et nom de doivent as comporter d'espace ou de caractères spéciaux.
Votre aide est précieuse pour améliorer ce site, alors n'hésitez pas à faire part de
Dans la LOGITHEQUE de MON PYTHON PAS A PAS
vous trouvez des suggestions de projets simples et classiques pour
ooo
TESTER - DÉCOUVRIR - PRATIQUER - APPROFONDIR - EXPLORER
ooo
la programmation récréative avec le langage PYTHON 3
avec un exemple de résolution à télécharger pour vous inspirer.