Arguments à main()

De RAD Studio
Aller à : navigation, rechercher

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] contient NULL.
  • env est aussi un tableau de pointeurs sur des chaînes. Chaque élément de env[] contient une chaîne de la forme ENVVAR=value.
    • ENVVAR est le nom d'une variable d'environnement, telle que PATH.
    • valeur est la valeur définissant ENVVAR, telle que C:\APPS;C:\TOOLS; (pour PATH).

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[])

Voir aussi