Arguments à main()
Remonter à La fonction main() - Index
Trois paramètres (arguments) sont passés à main
par la routine de démarrage de C++Builder : argc
, argv
et env
.
argc
(un entier) est le nombre d'arguments de ligne de commande passés àmain
, notamment le nom de l'exécutable lui-même.argv
est un tableau de pointeurs sur des chaînes(char *[])
.argv[0]
est le nom du chemin complet du programme en cours d'exécution.argv[1]
pointe sur la première chaîne typée sur la ligne de commande du système d'exploitation située après le nom du programme.argv[2]
pointe sur la seconde chaîne typée située après le nom du programme.argv[argc-1]
pointe sur le dernier argument passé àmain
.argv[argc]
contientNULL
.
env
est aussi un tableau de pointeurs sur des chaînes. Chaque élément deenv[]
contient une chaîne de la formeENVVAR=value
.ENVVAR
est le nom d'une variable d'environnement, telle quePATH
.valeur
est la valeur définissantENVVAR
, telle queC:\APPS;C:\TOOLS;
(pourPATH
).
Si vous déclarez ces paramètres, vous devez les déclarer exactement dans l'ordre donné : argc
, argv
et env
. Par exemple, voici des déclarations valides d'arguments passés à main
:
int main()
int main(int argc) /* legal but very unlikely */
int main(int argc, char *argv[])
int main(int argc, char *argv[], char *env[])]
La déclaration int main(int argc)
est correcte, mais il est peu probable que vous utilisiez argc
dans votre programme sans utiliser aussi les éléments de argv
.
L'argument env
est aussi disponible à travers la variable globale _environ.
Pour toutes les plates-formes, argc
et argv
sont aussi disponibles via les variables globales _argc
et _argv
.
Utilisation de la fonction main() avec une application Unicode
Voici la version Unicode de la fonction main
:
int wmain (int argc, wchar_t *argv[], wchar_t *env[])
Le paramètre argv
et le paramètre facultatif envp
supportent les caractères étendus.
La fonction _tmain
est une macro qui développe la version appropriée de la fonction main
selon le type de l'application :
int _tmain (int argc, _TCHAR *argv[], _TCHAR *env[])