Argumentos de linha de comando em C explicados

Publicados: 2022-04-29

Os argumentos de linha de comando são usados ​​quando um programa precisa ser controlado de fora em vez de internamente. É uma interface de texto para desenvolvedores onde os argumentos são passados ​​diretamente para o método primário.

Os valores que são passados ​​dentro de uma função quando ela é chamada são chamados de argumentos. Em outras palavras, um argumento é um parâmetro que é passado para um determinado método quando invocado.

Sintaxe :

int main() { /* … */ }

O código acima recebe o comando e o passa para o sistema operacional do computador para ser executado. Esses comandos são sempre invocados quando um código está sendo executado.

Os argumentos de linha de comando CC e C++ são muito fáceis de implementar devido à sua simplicidade e sintaxes facilmente decifráveis.

Para passar argumentos de linha de comando, a função main precisa ser definida por dois argumentos:

  1. O número total de argumentos de linha de comando
  2. A lista inteira de argumentos de linha de comando

Sintaxe :

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

  1. argc (ARGument Count) é definido como um tipo de dados inteiro que armazena o número total de argumentos de linha de comando. Compreensivelmente, este deve ser sempre um valor não negativo.
  2. argv (ARGument Vector) denota uma matriz de ponteiros do tipo de dados de caractere usado para armazenar toda a lista de argumentos de linha de comando.

Com a ajuda da linha de comando, os desenvolvedores podem acessar uma variedade de arquivos e pastas em seus computadores. Um determinado programa que contém vários argumentos de linha de comando pode identificar rapidamente as origens ou destinos dos dados fornecidos. Também tem o potencial de alterar o funcionamento do programa. Isso torna o processo de construção mais fácil de colocar no controle de origem.

No campo do desenvolvimento, uma ampla gama de tarefas não requer visualização real. Nesses casos, todas as funções podem ser executadas com a ajuda de argumentos de linha de comando. Há um requisito muito raro para uma interface gráfica literal. Isso ajuda a economizar muito dinheiro, esforço e recursos.

Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.

Índice

Propriedades | Argumentos de linha de comando em C

Os argumentos de linha de comando têm algumas propriedades interessantes e úteis. Eles são os seguintes:

  • Para imprimir o nome do programa, o comando deve ser argv[0]
  • argv[argc] é essencialmente um ponteiro nulo
  • Para imprimir o primeiro argumento fornecido pelo usuário, o comando deve ser argv[1]
  • O usuário passa argumentos de linha de comando do terminal
  • O uso desses comandos é controlar os programas de fora, em vez de ter que codificar os valores dentro do programa
  • Os argumentos da linha de comando são passados ​​para a função main() o tempo todo
  • O primeiro argumento do comando land é argv[1], enquanto o último comando é argv[n]

Exemplo de um argumento de linha de comando

A seguir está um programa de demonstração para argumentos de linha de comando em C:

// programa C para ilustrar

// argumentos de linha de comando

#include<stdio.h>

int main(int argc,char* argv[])

{

contador int;

printf("Nome do programa: %s",argv[0]);

if(argc==1)

printf(“\nNenhum argumento de linha de comando extra passado além do nome do programa”);

if(arg>=2)

{

printf(“\nNúmero de argumentos passados: %d”,argc);

printf(“\n—-A seguir estão os argumentos da linha de comando passados—-“);

for(contador=0;contador<argc;contador++)

printf("\nargv[%d]: %s",contador,argv[contador]);

}

retornar 0;

}

A saída difere de acordo com vários cenários. Eles foram explicados individualmente.

  1. Sem argumento:

Para produzir a seguinte saída, o código deve ser executado sem passar um argumento:

Saída 1 -

$ ./a.out

O nome do programa é: ./a.out

Nenhum argumento de linha de comando extra passado além do nome do programa

  • Com três argumentos:

Para produzir a saída a seguir, o código deve ser executado com três argumentos.

Saída 2 -

$ ./a.out Primeiro Segundo Terceiro

O nome do programa é: ./a.out

Número de argumentos aprovados: 4

—-A seguir estão os argumentos da linha de comando passados—-

argv[0]: ./a.out

argv[1]: Primeiro

argv[2]: Segundo

argv[3]: Terceiro

  • Com um único argumento:

O código precisa ser compilado e executado com um único argumento que deve ser separado por espaço entre aspas para produzir a saída a seguir.

Saída 3 -

$ ./a.out “Primeiro Segundo Terceiro.”

O nome do programa é: ./a.out

Número de argumentos aprovados: 2

—-A seguir estão os argumentos da linha de comando passados—-

argv[0]: ./a.out

argv[1]: Primeiro Segundo Terceiro

  • Com um único argumento entre aspas e separados por espaço:

O código deve ser compilado e executado com um único argumento separado por espaço, mas entre aspas simples para produzir a saída a seguir.

Saída 4 -

$ ./a.out 'Primeiro Segundo Terceiro'

O nome do programa é: ./a.out

Número de argumentos aprovados: 2

—-A seguir estão os argumentos da linha de comando passados—-

argv[0]: ./a.out

argv[1]: Primeiro Segundo Terceiro

Vantagens dos argumentos de linha de comando em C

Existem vários benefícios de usar argumentos de linha de comando em C. Eles são os seguintes:

  • Os argumentos de linha de comando em C podem ser usados ​​quando um programador ou usuário deseja passar os valores para o programa de dentro em vez de fazê-lo internamente.
  • Os aplicativos de linha de comando podem ser facilmente usados ​​em arquivos em lote ou scripts. Isso é uma grande ajuda no que diz respeito a testes ou compilações automatizadas.
  • A linha de comando é mais fácil de desenvolver se os programadores escreverem as ferramentas em vez de usá-las. A entrada de argumentos é considerada uma tarefa muito mais complexa e demorada do que a saída de um fluxo de texto.
  • Os fluxos de entrada, saída e erro podem ser facilmente redirecionados quando as informações podem ser enviadas ou recebidas de vários arquivos e aplicativos.
  • O mecanismo de retorno de erro em argumentos de linha de comando é bastante padrão e simples.
  • Quando um programador ou usuário está tentando obter acesso em casa ou na estrada, basicamente enquanto estiver em movimento, o uso de shells remotos ou outras conexões semelhantes facilitam muito a execução de tarefas.
  • Para a função de especificar vários arquivos, estão presentes padrões de sintaxe curinga definidos, que se baseiam e se baseiam no conhecimento existente do desenvolvedor ou programador.
  • As linhas de comando são atraentes e extremamente rápidas.

Falando de vantagens em vários argumentos de linha de comando, a seguir está outro exemplo detalhado ou demonstração de como você deve implementá-los.

#include <stdio.h>

#include <conio.h>

// é chamado o método main para o qual os argumentos da linha de comando são passados ​​para o programa

int main(int argc, char *argv[])

{

//uma variável inteira é definida

int um;

//se a condição for aplicada para verificar se a contagem de argumentos passados ​​ao programa é maior ou igual a dois, e se a condição for verdadeira, os argumentos de linha de comando passados ​​ao programa são impressos. Caso contrário, nenhum argumento é passado para o programa é impresso

if(arg >= 2)

{

printf(“Os argumentos passados ​​para o programa são:\n”);

for(a = 1; a < argc; a++)

{

printf(“O argumento passado para o programa é: %s\t”, argv[a]);

}

}

senão

{

printf("Nenhum argumento é passado para o programa\n");

}

retornar 0;

}

Resultado:

Nenhum argumento é passado para o programa.

Os argumentos de linha de comando são passados ​​para o programa no código mencionado acima chamando o método main. O próximo passo é a definição de uma variável inteira. Em seguida, a condição é passada para verificar se a contagem de argumentos passados ​​ao programa é maior ou igual a 2. Os argumentos de linha de comando passados ​​ao programa são impressos se a condição for verdadeira. Caso contrário, nenhum argumento é passado para o programa e impresso.

Conclusões

Saiba mais sobre a importância dos argumentos de linha de comando em C e C++ inscrevendo-se no Programa PG Executivo do upGrad em Desenvolvimento de Software – Especialização em Desenvolvimento Full Stack . O curso de 13 meses foi desenvolvido para ajudar aspirantes a profissionais de TI a dominar Java, Spring, Hibernate, HTML, React, Git e uma variedade de outras linguagens de programação e ferramentas para criar aplicativos complexos como Quora e Swiggy.

O programa também oferece uma Certificação Executiva gratuita de 4 meses em Ciência de Dados e Aprendizado de Máquina.

Quais são as desvantagens básicas que os programadores devem enfrentar ao implementar argumentos de linha de comando em C?

Embora os argumentos de linha de comando em C sejam convenientes para desenvolvedores e programadores, eles trazem algumas desvantagens. As pessoas que não têm o conhecimento básico e não estão acostumadas a trabalhar com esses comandos podem ser bastante desafiadoras para aprender e se adaptar, especialmente em um curto período. No entanto, isso não é um problema para programadores e desenvolvedores experientes. Mas, às vezes, isso se torna um obstáculo para funcionários juniores que podem vir de áreas diferentes ou adjacentes. Além disso, os argumentos de linha de comando precisam de um teclado para serem implementados e executados. Isso geralmente se torna uma barreira se alguém precisar acessá-lo por meio de seu telefone ou iPad, etc.

Quais são os delimitadores usados ​​para separar argumentos de linha de comando?

Para separar argumentos de linha de comando, geralmente são usados ​​espaços em branco. Eles separam o nome do comando de seus parâmetros e separam vários parâmetros entre si. Eles também são úteis ao separar uma lista de valores diferentes. Os vários espaços em branco são geralmente tratados como um único espaço em branco. A única exceção a isso acontece em uma string entre aspas ou um comentário entre aspas simples.

É possível converter argumentos de linha de comando?

Todos os argumentos de linha de comando são passados ​​como uma string. Os valores numéricos devem sempre ser convertidos pelos programadores ou usuários para seus formulários internos, utilizando esforço manual. A função main sempre recebe seus parâmetros, que geralmente são um array de strings. Este é o único argumento de função que a função principal aceita. Os tipos de dados String são feitos para serem usados ​​durante o armazenamento de argumentos de linha de comando.