Publicado em Programação

Passagem de parâmetros na linha de comandos – Linguagem C

Se pensarmos que qualquer programa escrito em Linguagem C é “despoletado” a partir de uma função principal, cuja designação é “main()“, fazer a passagem de parâmetros na linha de comandos é muito semelhante a realizar essa operação para outra qualquer função dentro do programa.

A grande diferença é que, no segundo caso, o valor desses parâmetros é especificado dentro do próprio código, e no primeiro, é feito na linha de comandos quando damos a ordem de execução do programa.

Para possibilitar a passagem de parâmetros a partir da linha de comandos existem dois parâmetros especiais:

argc -Dá indicação do número de argumentos que foram passados na linha de comando. Quando não são passados argumentos este valor é 1, uma vez que o próprio nome do programa faz parte desta contagem.

argv – É um array de strings que contém os caracteres que formam cada uma das strings passadas a partir da linha de comandos. Pelo mesmo motivo apresentado no ponto anterior, argv[0] armazena o próprio comando invocado.

A título de exemplo são mostrados os valores de arc e argv para um caso concreto:

$ ./exemplo batatas fritas 33
  • argc =4
  • argv[0] armazena a string “./exemplo”
  • argv[1] armazena a string “batatas”
  • argv[2] armazena a string “fritas”
  • argv[3] armazena a string “33”

Segue-se um exemplo muito simples que se limita a contar e listar os argumentos passados da linha de comandos.

Código fonte
#include <stdio.h>
int main(int argc,char *argv[]){
	int i;
	printf("argc = %d\n",argc);
	for(i=0;i<argc;i++)
		printf("argv&#91;%d&#93; = %s\n", i, argv&#91;i&#93;);
	return 0;
}&#91;/sourcecode&#93;

<strong><span style="color:#3366ff;">Output</span></strong>

$ ./argcargv graciano torrao
argc = 3
argv[0] = ./argcargv
argv[1] = graciano
argv[2] = torrao

Note que o programa foi gravado com o nome argcargv.c e o executável obtido tem no nome argcargv.

Caso o ./ antes do nome do ficheiro “atrapalhe”, basta executarem o comando apresentado a seguir ou, em alternativa, editar os ficheiros de configuração da variáveis de sistema e tornar esta funcionalidade permanente.

$ PATH=$PATH:.
Anúncios

3 opiniões sobre “Passagem de parâmetros na linha de comandos – Linguagem C

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s