31 Argumentos de linha de comando: a função main

Uma aplicação de arrays de ponteiros surge de imediato quando você deseja acessar os argumentos digitados para seu programa na linha de comando.

Para isto, a função main manipula dois argumentos quando o programa inicia a execução:

            main (int argc, char *argv[])
            {
               .....
            }

O primeiro argumento, denominado argc por convenção, representa o número de argumentos digitados na linha de comando, incluindo o nome do programa na linha de comando, que é definido como o primeiro argumento. Desta forma o valor de argc é sempre maior ou igual a 1 (um).

Em UNIX, um argumento é considerado como uma sequência de caracteres até a primeira ocorrência do caracter de espaçamento, que pode ser um espaço em branco, tab ou o caracter de mudança de linha5.

O segundo argumento de main é o array de ponteiros para caracteres chamado argv, por convenção. O primeiro ponteiro em argv, argv[0], aponta para o nome do programa em execução. Os elementos sucessivos do array, argv[1], argv[2], ..., argv[argc - 1], contém ponteiros para os argumentos digitados na linha de comando após o nome do programa.

Como um exemplo, considere a execução do programa chamado nroff. Se a linha de comando abaixo é digitada:

               nroff -mm -TXR memo1

então o valor de argc será 4 (o nome do programa mais os três argumentos que se seguem), e o argumento argv será um array de ponteiros para caracteres. O primeiro elemento deste array aponta para o string "nroff", o segundo para -mm", o terceiro para -TXR" e finalmente o quarto elemento aponta para o string "memo1". Isto pode ser melhor visualizado na Figura 3.

Figura 3: Argumentos na linha de comando
\includegraphics[scale=0.8]{cmdline}



Notas de rodapé

... linha5
Aspas e apóstrofes podem agrupar palavras como um argumento único, mesmo que tenham espaçamento.
Armando Luiz Nicolini Delgado
2013-10-21