Programação C · 2 min read · Nov 20, 2025
Tutorial de Programação em C no Linux parte 22 - Acessando argumentos da linha de comando dentro do programa C

No tutorial anterior, discutimos múltiplos conceitos relacionados a ponteiros na linguagem de programação C. Um dos conceitos que discutimos foi um array de ponteiros. Usamos o exemplo de um array de ponteiros inteiros para demonstrar o conceito.
Como acessar argumentos da linha de comando dentro de um programa C
Mas como mencionado naquele tutorial, um array de ponteiros pode ser de diferentes tipos. Por exemplo, aqui está um array de ponteiros de caracteres:
char *arr[] = {"HowtoForge", "FaqForge", "Linux"};E aqui está um pequeno programa que mostra como esse array pode ser usado:
#include
int main()
{
char *arr[] = {"HowtoForge", "FaqForge", "Linux"};
printf("\n %s", *arr);
printf("\n %s", *(arr+1));
printf("\n %s", *(arr+2));
return 0;
} ‘arr’ é o endereço do primeiro elemento deste array. Agora, como este é um array de ponteiros, o primeiro elemento (e todos os outros elementos, acessados adicionando 1 e 2 a arr) não é nada além de um endereço. Portanto, para acessar o valor mantido nesse endereço, usamos o operador *.
A seguir está a saída deste programa:
HowtoForge
FaqForge
LinuxEntão, é assim que você acessa valores de um array de ponteiros de caracteres. Agora, você deve estar pensando por que discutimos tudo isso?
Bem, fizemos isso porque isso nos leva a outro conceito importante, que é a capacidade de acessar argumentos da linha de comando em ambientes que suportam a linguagem de programação C. Vamos discutir isso em detalhes.
Como você deve estar bem ciente agora, ‘main’ é a primeira função no seu programa que é chamada quando o programa é executado. É chamada com dois argumentos: argc e argv. Enquanto o primeiro informa sobre o número de argumentos da linha de comando, o último é na verdade um array de ponteiros para os próprios argumentos.
Por favor, note que o nome do programa em si é passado como um argumento para a função main. Portanto, por causa disso, o número de argumentos - representado por argc - é um a mais do que o número real de argumentos passados para o programa. A seguir está um exemplo:
#include
int main(int argc, char *argv[])
{
printf("\n %d", argc);
printf("\n %s", *argv);
return 0;
} Agora, executamos este programa - chamado a.out, e presente no diretório ‘home’ do nosso sistema - sem nenhum argumento. E aqui está a saída:
1
/home/a.outEntão você pode ver que o nome de execução do programa foi passado como um argumento. Se eu tivesse usado o seguinte comando:
/home/a.out htf ffEntão, nesse caso, argc teria sido 3 e argv teria contido endereços das strings ‘/home/a.out’, ‘htf’ e ‘ff’.
Aqui está uma maneira melhor de escrever o programa de impressão de argumentos:
#include
int main(int argc, char *argv[])
{
for(int i=0; i Vale a pena lembrar que os argumentos são armazenados no array na mesma ordem em que são passados na linha de comando.
Conclusão
Você provavelmente encontrará várias situações em que terá que lidar com argumentos da linha de comando dentro do seu código C. O que discutimos aqui deve formar uma base para você. Tente alguns programas do seu lado para ter uma ideia melhor de como os argumentos da linha de comando são acessados dentro de um programa C.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.