Descrição de argumento
O parâmetro argc
nas funções main
e wmain
é um inteiro que especifica quantos argumentos são transmitidos ao programa na linha de comando. Como o nome do programa é considerado um argumento, o valor de argc
é pelo menos um.
Comentários
O parâmetro argv
é uma matriz de ponteiros para cadeias de caracteres de terminação nula que representam os argumentos do programa. Cada elemento da matriz aponta para uma representação de cadeia de caracteres de um argumento transmitido a main
(ou a wmain
). (Para obter informações sobre matrizes, confira Declarações de matriz). O parâmetro argv
pode ser declarado como uma matriz de ponteiros para o tipo char
(char *argv[]
) ou como um ponteiro para ponteiros para o tipo char
(char **argv
). Para wmain
, o parâmetro argv
pode ser declarado como uma matriz de ponteiros para o tipo wchar_t
(wchar_t *argv[]
) ou como um ponteiro para ponteiros para o tipo wchar_t
(wchar_t **argv
).
Por convenção, argv[0]
é o comando com que o programa é invocado. No entanto, é possível gerar um processo usando CreateProcess
e, se você usar o primeiro e o segundo argumentos (lpApplicationName
e lpCommandLine
), argv[0]
poderá não ser o nome executável. Use GetModuleFileName
para recuperar o nome executável.
O último ponteiro (argv[argc]
) é NULL
. (Consulte getenv
na Referência da biblioteca em tempo de execução para conhecer um método alternativo para obter informações sobre a variável de ambiente.)
Seção específica da Microsoft
O parâmetro envp
é um ponteiro para uma matriz de cadeias de caracteres de terminação nula que representam os valores definidos nas variáveis de ambiente do usuário. O parâmetro envp
pode ser declarado como uma matriz de ponteiros para char
(char *envp[]
) ou como um ponteiro para ponteiros para char
(char **envp
). Em uma função wmain
, o parâmetro envp
pode ser declarado como uma matriz de ponteiros para wchar_t
(wchar_t *envp[]
) ou como um ponteiro para ponteiros para wchar_t
(wchar_t **envp
). O final da matriz é indicado por um ponteiro NULL*
. O bloco de ambiente passado para main
ou wmain
é uma cópia "congelada" do ambiente atual. Se mais tarde você alterar o ambiente com uma chamada para _putenv
ou _wputenv
, o ambiente atual (retornado por getenv
/_wgetenv
e as variáveis _environ
ou _wenviron
) será alterado, mas o bloco apontado por envp
não será alterado. O parâmetro envp
é compatível com ANSI/ISO C89 em C, mas é uma extensão da Microsoft em C++.
Fim da seção específica da Microsoft