Les arguments de la ligne de commande |
|||
| 1) Kesako ? Je me suis souvent demandé comment atteindre des paramètres (ou arguments) entrés dans la ligne de commande du DOS. Pour rappel, lorsque vous tapez :
fichier.txt est ici un argument pour la commande type. 2) Où se cache donc ce paramètre ? Lorsque vous exécutez un programme, le DOS réserve d'abord une zone mémoire pour le programme, que l'on appelle le segment de code. Ensuite, il construit un bloc appelé le PSP (Program Segment Prefixe) sur les 256 premiers bytes du code segment. Le programme est généralement chargé directement après le PSP, à l'offset 100h. Sans entrer dans les détails, le PSP contient des informations qui aident le DOS à exécuter le programme. Parmi toutes ces informations on peut trouver (à l'offset 81h) tous les arguments entrés après le nom du programme sous forme d'une chaîne ASCII terminée par Enter (de code ASCII 13). Il doit y avoir moyen d'accéder à l'offset 81h du PSP, soi-même à l'aide de pointeurs mais le langage C nous propose une technique plus confortable... Le principe consiste à récupérer dans la fonction principale (main) les arguments de la ligne de commande via un tableau de chaînes de caractères : char **argv : tableau des arguments de la ligne de commande. int argc : compteur du nombre d'arguments dans la ligne de commande. 3) Un exemple ? Appelons le programme suivant TEST.C : #include<dos.h> main (int argc, char **argv) if(argc<2) puts("Aucun
argument entré"); getch(); Exécutons-le en y spécifiant plusieurs arguments :
Le programme affiche à l'écran :
Remarque : Vous avez remarqué que l'argument 0 correspond au nom complet du programme, précédé de son path. Et voilà, c'était pas plus compliqué que ça !! Ben mince alors... Vous pouvez maintenant utiliser les arguments dans vos programmes. N'oubliez tout de même pas de prévoir un message pour les utilisateurs de vos programmes, précisant la syntaxe à respecter lorsque le nombre d'arguments est incorrect. Un petit code source d'un programme qui utilise les arguments : view.c : Programme similaire à la commande type du DOS.
|
© Copyright Benjamin Fonzé 1999/2000