Argumentos-de-entrada
Você vai aprender
O que são argumentos de entrada
Como utilizar eles na linguagem C
Pré-Requisitos
Argumentos de entrada?
Ao declarar a função main do nosso programa em C, temos duas maneiras de escrever a função, a primeira você apenas declara a função e passa nenhum parâmetro. Observe essa primeira alternativa abaixo:
Talvez esta, muitos já conhecem, porém existe uma outra maneira, que é utilizando os parâmetros argc e argv
Existe mais de uma maneira de utilizar essa nomenclatura, mas ai fica a questão. O que significa esses parâmetros e como utilizá-los?
Argc e Argv
A palavras argc e argv são nada mais do que versões curtas das palavras: argument counter (contador de argumentos) e argument vector (vetor de argumentos), e juntos eles possibilitam que o programador possa mandar parâmetros dinâmicos para dentro do programa durante a execução do mesmo. Importante ressaltar duas coisas.
Em C não é possível saber o tamanho de um vetor bidimensional sem o uso de uma variável auxiliar, por isso, o argc é a nossa variável auxiliar, um int contendo o tamanho do nosso vetor argv
A esse ponto imagino que vocês já tenham assistido a aula de String e por conta disso, muitos de vocês devem saber que o char argv[]* é nada mais do que um vetor de vetores de caracteres, em outras palavras, um vetor de Strings.
Por fim. vamos ver um exemplo abaixo, para deixar tudo mais claro.
Como pode ser ver, estamos usando a variável argc para iterar pelos elementos de argv, que então são imprimidos na tela, vamos ver o resultado!
Para passar os nossos parâmetros para o argv, iremos passar ele durante a execução do programa, ou seja, primeiros compilamos o nosso código normalmente
Agora, vamos passar os argumentos ao fazer o ./a.out
, ou seja
Observe o resultado:
Obs.: Perceba que a primeira string do nosso vetor de argumentos argv inclui o nosso /a.out, ou seja o nome do nosso executável.
BÔNUS: envp
O que são Variáveis de Ambiente?
As variáveis de ambiente, às vezes chamadas de variáveis de shell, são configurações de sistema que podem ser usadas por programas em execução. Elas são definidas no ambiente do sistema e podem conter informações como o diretório de usuário, o tipo de terminal e muitas outras configurações úteis.
As variáveis de ambiente são armazenadas em um conjunto especial de variáveis, coletivamente chamado de ambiente. O nome de uma variável de ambiente é sensível a maiúsculas e minúsculas, e é uma boa prática usar letras maiúsculas para nomear novas variáveis que você define. O valor de uma variável de ambiente é uma sequência de caracteres que não pode conter um caractere nulo, já que o caractere nulo é usado para encerrar a sequência.
Acesso às Variáveis de Ambiente em C
Para acessar as variáveis de ambiente em um programa C, você pode usar o parâmetro "envp" na função "main". Aqui está um exemplo de como sua função "main" pode ser definida:
O parâmetro "envp" é um array de strings, semelhante ao parâmetro "argv". Ele contém uma lista das variáveis de ambiente do seu sistema, no formato "NOME=valor".
Exemplo de Uso
Para acessar o valor de uma variável de ambiente, você pode usar a função getenv
que está definida no cabeçalho stdlib.h
. Aqui está um exemplo de como você pode usá-lo:
Quando você executa este código, ele imprimirá informações com base nas variáveis de ambiente do sistema, como o diretório de usuário e o nome do host.
Importante a Lembrar
Dê preferencia a usar a função "getenv" em vez de usar esse parâmetro, já que o mesmo é padronizado apenas em sistemas do tipo UNIX.
Não modifique as strings retornadas por
getenv
. Elas são ponteiros para dados que pertencem ao sistema. Se você quiser processar um valor retornado porgetenv
, copie-o para outra string primeiro usandostrcpy
.Se você desejar alterar uma variável de ambiente de dentro do seu programa (o que geralmente não é recomendado), use funções como
putenv
,setenv
eunsetenv
. Consulte a documentação para obter mais informações sobre essas funções.
As variáveis de ambiente e o parâmetro "envp" são ferramentas poderosas para a comunicação entre programas e para acessar informações de configuração no sistema operacional. Elas desempenham um papel importante na programação em C e podem ser úteis em diversas situações.
links úteis
Last updated