Description des arguments
Le paramètre argc
dans les fonctions main
et wmain
est un entier spécifiant le nombre d’arguments passés au programme à partir de la ligne de commande. Le nom du programme étant considéré comme un argument, la valeur argc
est d'au moins un.
Notes
Le paramètre argv
est un tableau de pointeurs vers des chaînes terminées par le caractère NULL qui représente les arguments de programme. Chaque élément du tableau pointe vers une représentation sous forme de chaîne d’un argument passé à main
(ou wmain
). (Pour des informations sur les tableaux, consultez Déclarations de tableau.) Le paramètre argv
peut être déclaré soit comme un tableau de pointeurs vers le type char
(char *argv[]
), soit comme un pointeur vers des pointeurs vers le type char
(char **argv
). Pour wmain
, le paramètre argv
peut être déclaré soit comme un tableau de pointeurs vers le type wchar_t
(wchar_t *argv[]
), soit comme un pointeur vers des pointeurs vers le type wchar_t
(wchar_t **argv
).
Par convention, argv[0]
est la commande avec laquelle le programme est appelé. Toutefois, il est possible de générer un processus utilisant CreateProcess
et, si vous utilisez à la fois le premier et le deuxième argument (lpApplicationName
et lpCommandLine
), argv[0]
peut ne pas être le nom exécutable. Utilisez GetModuleFileName
pour récupérer le nom exécutable.
Le dernier pointeur (argv[argc]
) est NULL
. (Consultez getenv
dans la Référence de la bibliothèque runtime afin de trouver une autre méthode pour obtenir des informations de variable d’environnement.)
Section spécifique à Microsoft
Le paramètre envp
est un pointeur vers un tableau de chaînes terminées par le caractère NULL qui représentent les valeurs définies dans les variables d'environnement de l'utilisateur. Le paramètre envp
peut être déclaré comme tableau de pointeurs en type char
(char *envp[]
) ou comme pointeur vers des pointeurs en type char
(char **envp
). Dans une fonction wmain
, le paramètre envp
peut être déclaré comme un tableau de pointeurs vers wchar_t
(wchar_t *envp[]
), ou comme un pointeur vers des pointeurs vers wchar_t
(wchar_t **envp
). La fin du tableau est affichée par un pointeur NULL*
. Le bloc d’environnement passé à main
ou wmain
est une copie « figée » de l’environnement actuel. Si vous modifiez ultérieurement l’environnement via un appel à _putenv
ou _wputenv
, l’environnement actuel (tel que retourné par getenv
/_wgetenv
et les variables _environ
ou _wenviron
) change, mais pas le bloc vers lequel envp
pointe. Le paramètre envp
est compatible ANSI/ISO C89 en C, mais il s’agit d’une extension Microsoft en C++.
FIN de la section spécifique à Microsoft