Interruption 21h |
Fonction 4Ch |
Mettre fin au programme et retourne un code de fin |
---|---|---|
DOS 2.0+, OS/2, Windows NT |
Description
Cette fonction permet de mettre fin au programme et retourner un code de fin. Il s'agit d'une des nombreuses méthodes qu'un programme peut utiliser pour effectuer une sortie finale. Le système d'exploitation DOS effectue ensuite les actions suivantes : toute la mémoire appartenant au processus est libérée, les tampons de fichiers sont vidés et tous les descripteurs ouverts pour les fichiers ou les périphériques appartenant au processus sont fermés, le vecteur gestionnaire de terminaison (Interruption 22h) est restauré à partir de PSP:000Ah, le vecteur gestionnaire Ctrl+C (Interruption 23h) est restauré à partir de PSP:000Eh, à partir de la version 2.0 du système d'exploitation DOS, le vecteur de gestionnaire d'erreur critique (Interruption 24h) est restauré à partir de PSP:0012h, le contrôle est transféré au gestionnaire de terminaison. Si le programme revient à COMMAND.COM, les transferts de contrôle vers la partie résidente et la partie transitoire sont rechargés si nécessaire. Si un fichier de traitement par lot est en cours, la ligne suivante du fichier est récupérée et interprétée; sinon, un prompt est émise pour la commande utilisateur suivante.
Entrée
Registre | Valeur ou description |
---|---|
AH | 4Ch |
AL | Ce registre permet d'indiquer le code de fin |
Sortie
Aucune
Remarques
- A partir de la version 2.0 du système d'exploitation DOS, il s'agit de la méthode de terminaison préférée pour les programmes d'application, car elle permet de transmettre un code retour au programme parent et ne dépend du contenu d'aucun registre de segment. Les autres méthodes pour effectuer une sortie finale sont les suivantes : Interruption 20h, Interruption 21h, fonction 00h, Interruption 21h, fonction 31h et Interruption 27h.
- Tout fichier ouvert à l'aide de FCB et modifié par le programme doit être fermé avant la fin du programme; sinon, des données pourraient être perdues.
- Le code retour peut être récupéré par le processus parent avec l'interruption 21h, fonction 4Dh (Demande le code retour). Il peut également être testé dans un fichier de commandes avec une instruction IF ERRORLEVEL. Par convention, un code retour de 0 indique une exécution réussie et un code retour différent de zéro indique une erreur.
- A partir de la version 3.0 du système d'exploitation DOS, si le programme s'exécute sur un réseau, il doit supprimer tous les verrous qu'il a placés sur les régions de fichiers avant de se terminer.
Exemple
L'exemple suivant permet de terminer le programme en retournant un code de terminaison normal :
Références
Aide-mémoire des interruptions du MS-DOS, Edition Marabout, Philippe Mercier, 1990, ISBN: 2-501-01297-6, page 258 à 259.