DosWaitChild |
DOS : Attend après l'enfant |
---|---|
DOSCALLS.DLL | os2.h |
Syntaxe
APIRET DosWaitChild( ULONG ulAction, ULONG ulWait, PRESULTDATA pReturnCode, PPID ppidOut, PID pidIn ); |
Paramètres
Nom | Description | ||||
---|---|---|---|---|---|
ulAction | Ce paramètre permet d'indiquer quel processus léger courant est attendu pour se terminer. Voici les valeurs possibles : | ||||
Constante | Valeur | Description | |||
DCWA_PROCESS | 0 | Cette valeur permet d'indiquer que le processus est indiquer par le paramètre pidIn. | |||
DCWA_PROCESSTREE | 1 | Cette valeur permet d'indiquer que le processus est indiquer par le paramètre pidIn et qu'il comprend tous les processus enfants. | |||
ulWait | Ce paramètre permet d'indiquer s'il faut retourner lorsqu'aucun processus enfant ne se termine. Voici les valeurs possibles : | ||||
Constante | Valeur | Description | |||
DCWW_WAIT | 0 | Cette valeur permet d'indiquer qu'il faut attendre que le processus enfant se termine ou jusqu'à ce qu'il n'est plus de processus enfant en opération. | |||
DCWW_NOWAIT | 1 | Cette valeur permet d'indiquer qu'il ne faut pas attendre que les processus enfants se termine. | |||
pReturnCode | Ce paramètre contient un pointeur vers une structure RESULTDATA d'information de sortie pour la terminaison du processus. Voici le format de la structure : | ||||
Champs | Type de données | Description | |||
codeTerminate | ULONG | Ce champ contient un code fournit par le système expliquant pourquoi le processus enfant s'est terminé. | |||
Constante | Valeur | Description | |||
TC_EXIT | 0 | Cette valeur permet d'indiquer qu'une terminaison normal s'est produite. | |||
TC_HARDERROR | 1 | Cette valeur permet d'indiquer qu'une erreur matériel a arrêter le processus enfant. | |||
TC_TRAP | 2 | Cette valeur permet d'indiquer qu'une opération de trappage d'un processus enfant de 16 bits s'est produite. | |||
TC_KILLPROCESS | 3 | Cette valeur permet d'indiquer une non-interception d'une fonction DosKillProcess. | |||
TC_EXCEPTION | 4 | Cette valeur permet d'indiquer une opération d'exception d'un processus enfant de 32 bits s'est produit. | |||
codeResult | ULONG | Ce champ permet d'indiquer le code de terminaison spécifié pour terminer le processus lors du dernière appel de la fonction DosExit. | |||
ppidOut | Ce paramètre contient un pointeur d'un identificateur de processus de terminaison de processus. | ||||
pidIn | Ce paramètre permet d'indiquer l'identificateur de processus d'un processus enfant dont l'attente de terminaison est attendu. |
Retour
Valeur | Constante | Description |
---|---|---|
0 | NO_ERROR | Cette valeur permet d'indiquer que l'opération s'est correctement effectué |
13 | ERROR_INVALID_DATA | Cette valeur permet d'indiquer qu'une erreur de données invalides s'est produite. |
128 | ERROR_WAIT_NO_CHILDREN | Cette valeur permet d'indiquer qu'une erreur d'attente après un processus enfant s'est produite. |
129 | ERROR_CHILD_NOT_COMPLETE | Cette valeur permet d'indiquer qu'une erreur d'un processus enfant non complété s'est produite. |
184 | ERROR_NO_CHILD_PROCESS | Cette valeur permet d'indiquer qu'il n'y a pas de processus enfant. |
303 | ERROR_INVALID_PROCID | Cette valeur permet d'indiquer un identificateur de procédure invalide. |
Description
Cette fonction permet d'attendre qu'un processus enfant se synchronise à sa fin et demande l'identificateur de processus, termine le code et retourne le résultat du code.
Exemple
Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :
- #define INCL_DOSERRORS
- #define INCL_DOSPROCESS
- #include "os2.h"
- #include "stdio.h"
-
- void main(void) {
- RESULTCODES rcResult;
- PID pidChild;
- switch(DosWaitChild(DCWA_PROCESS, DCWW_WAIT, &rcResult, &pidChild, 0)) {
- case NO_ERROR: printf("Tout va bien !");break;
- case ERROR_INVALID_DATA: printf("Erreur : Une erreur de données invalides s'est produite.");break;
- case ERROR_WAIT_NO_CHILDREN: printf("Erreur : Une erreur d'attente après un processus enfant s'est produite.");break;
- case ERROR_CHILD_NOT_COMPLETE: printf("Erreur : Une erreur d'un processus enfant non complété s'est produite.");break;
- case ERROR_NO_CHILD_PROCESS: printf("Erreur : Il n'y a pas de processus enfant.");break;
- case ERROR_INVALID_PROCID: printf("Erreur : Un identificateur de procédure invalide.");break;
- }
- }
Voir également
Langage de programmation - C pour OS/2 - DosExecPgm
Langage de programmation - C pour OS/2 - DosKillProcess
Système d'exploitation - OS/2 - Introduction
Dernière mise à jour : Lundi, le 19 juillet 2010