EXEC |
Exécute |
---|---|
Turbo Pascal 4+ | DOS |
Syntaxe
Procedure Exec(chemin,param:String); |
Paramètres
Nom | Description |
---|---|
chemin | Ce paramètre permet d'indiquer le chemin du programme à exécuter |
param | Ce paramètre permet d'indiquer les paramètres du programme à exécuter |
Description
Cette procédure permet d'exécuter un programme externe d'extension «.EXE» ou «.COM».
Remarques
- Le nom du programme est donné par le paramètre chemin et la ligne de commande par param. Pour exécuter une commande interne DOS, exécutez la commande l'interpréteur de commande par défaut (généralement COMMAND.COM); par exemple :
- Il est recommandé d'appeler SwapVectors juste avant et juste après l'appel à la procédure Exec. La procédure SwapVectors permet de permuter le contenu des pointeurs «SaveIntXX» de l'unité SYSTEM avec le contenu actuel des vecteurs d'interruption. Cette situation garantit que le processus de Exec n'utilise aucun gestionnaire d'interruption installé par le processus actuel, et inversement.
- La procédure Exec ne modifie pas l'état d'allocation de mémoire avant d'exécuter le programme. Par conséquent, lors de la compilation d'un programme utilisant Exec, veillez à réduire la taille de tas maximum; sinon, la mémoire sera insuffisante (DosError = 8).
- Il est possible de connaître le résultat de l'exécution en consultant la valeur retourné pour la variable «DOSError» :
- Les versions du logiciel système de logiciel Novell Netware antérieures à 2.01 ou 2.02 ne prennent pas en charge les appels DOS utilisés par la procédure Exec. Si vous utilisez l'EDI pour exécuter un programme utilisant Exec et que vous disposez d'un logiciel système Novell récent, définissez Compile | Destination sur Disk et exécutez votre programme à partir de DOS (vous pouvez utiliser la commande File | DOS Shell pour le faire).
Le /C devant la commande est une exigence de l'interpréteur de commande (mais pas d'autres applications). Les erreurs sont signalées dans DosError; Les codes d'erreur possibles sont 2, 8, 10 et 11. Le code de sortie de tout processus enfant est signalé par la fonction DosExitCode.
Code d'erreur | Description |
---|---|
2 | Ce code d'erreur permet d'indiquer que le fichier est introuvable |
8 | Ce code d'erreur permet d'indiquer que la mémoire disponible est insuffisante |
10 | Ce code d'erreur permet d'indiquer que l'environnement est incorrecte |
11 | Ce code d'erreur permet d'indiquer que le format est invalide |
Exemples
Voici un exemple montrant l'exécution de l'interpréteur de commande du systèmes d'exploitation :
L'exemple suivant permet de lancer un tâche d'arrière-plan de l'interpréteur de commande (voir COMMAND.COM en Pascal du projet Corail) à partir du gestionnaire multi-tâche proposé avec le DR-DOS :
Référence
Aide-mémoire de Turbo Pascal versions de 3 à 6, Edition Marabout, De Groote, Virga, 1992, ISBN: 2-501-01833-8, page 162 à 163.