Compartilhar via


Analisando argumentos de linha de comando c

Específicos do Microsoft

O código de inicialização do Microsoft C usa as seguintes regras ao interpretar os argumentos fornecidos na linha de comando do sistema operacional:

  • Argumentos são delimitados por espaço em branco, o que é um espaço ou uma guia.

  • Uma seqüência de caracteres entre aspas duplas é interpretada como um argumento único, independentemente do contido em espaços em branco.Uma seqüência entre aspas pode ser incorporada em um argumento.Observe que o cursor (^) não é reconhecido como um caractere de escape ou delimitador.

  • Aspas duplas precedido por uma barra invertida, \ ", é interpretado como um literal aspas duplas (").

  • Barras invertidas são interpretadas literalmente, a menos que eles precedem aspas duplas.

  • Se um número par de barras invertidas é seguido por aspas duplas, em seguida, um de barra invertida (\) é colocado na argv matriz para cada par de barras invertidas (\) e aspas duplas (") é interpretado como um delimitador de seqüência de caracteres.

  • Se um número ímpar de barras invertidas é seguido por aspas duplas, em seguida, um de barra invertida (\) é colocado na argv matriz para cada par de barras invertidas (\) e aspas duplas é interpretada como uma seqüência de escape por barra invertida restante, causando um literal aspas duplas (") sejam colocados em argv.

Esta lista ilustra as regras acima, mostrando o resultado interpretado passado para argv para vários exemplos de argumentos de linha de comando.A saída é listado na segunda, terceira e quarta colunas provém os ARGS.Programa em c que segue a lista.

Entrada de linha de comando

argv [1]

argv [2]

argv [3]

"a b c" d e

a b c

d

e

"ab\"c" "\\" d

ab"c

\

d

a\\\b d"e f"g h

a\\\b

de fg

h

a\\\"b c d

a\"b

c

d

a\\\\"b c" d e

a\\b c

d

e

Exemplo

a1y7w461.collapse_all(pt-br,VS.110).gifCódigo

// Parsing_C_Commandline_args.c
// ARGS.C illustrates the following variables used for accessing
// command-line arguments and environment variables:
// argc  argv  envp
//

#include <stdio.h>

int main( int argc, // Number of strings in array argv
 char *argv[],      // Array of command-line argument strings
 char **envp )      // Array of environment variable strings
{
    int count;

    // Display each command-line argument.
    printf_s( "\nCommand-line arguments:\n" );
    for( count = 0; count < argc; count++ )
        printf_s( "  argv[%d]   %s\n", count, argv[count] );

    // Display each environment variable.
    printf_s( "\nEnvironment variables:\n" );
    while( *envp != NULL )
        printf_s( "  %s\n", *(envp++) );

    return;
}

Comentários

Um exemplo de saída a partir desse programa é:

Command-line arguments:
  argv[0]   C:\MSC\TEST.EXE

Environment variables:
  COMSPEC=C:\NT\SYSTEM32\CMD.EXE
 
  PATH=c:\nt;c:\binb;c:\binr;c:\nt\system32;c:\word;c:\help;c:\msc;c:\;
  PROMPT=[$p] 
  TEMP=c:\tmp
  TMP=c:\tmp
  EDITORS=c:\binr
  WINDIR=c:\nt      

Específicos do Microsoft final

Consulte também

Referência

Função e a execução do programa principal