Introdução
Neste projeto, você aprenderá como analisar e lidar com argumentos de linha de comando em um programa C. Esta é uma habilidade fundamental no desenvolvimento de software, pois muitos programas aceitam e processam argumentos de linha de comando para personalizar seu comportamento.
👀 Visualização
$ gcc cmd.c -o cmd
$ ./cmd --arg1 1 --arg2 demo --arg9 labex
arg1:1
arg2:demo
arg9:labex
🎯 Tarefas
Neste projeto, você aprenderá:
- Como criar um arquivo C e escrever a estrutura básica de um programa C
- Como analisar argumentos de linha de comando e extrair nomes e valores de parâmetros
- Como imprimir os nomes e valores dos parâmetros no formato exigido
🏆 Conquistas
Após concluir este projeto, você será capaz de:
- Compreender o conceito de argumentos de linha de comando e como usá-los em um programa C
- Implementar um programa que pode analisar e lidar com argumentos de linha de comando
- Aplicar seu conhecimento de programação C para resolver um problema prático
Criar o Arquivo C
Nesta etapa, você criará o arquivo C para o programa de argumentos de linha de comando.
- Abra um terminal e navegue até o diretório do projeto:
cd ~/project
- Crie um novo arquivo C chamado
cmd.cno diretório do projeto:
touch cmd.c
- Abra o arquivo
cmd.cem um editor de texto e adicione o seguinte código:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
// Seu código irá aqui
return 0;
}
Esta é a estrutura básica do programa C que lidará com os argumentos de linha de comando.
Implementar a Análise de Argumentos da Linha de Comando
Nesta etapa, você implementará a lógica para analisar os argumentos de linha de comando e imprimir os nomes e valores dos parâmetros.
- Na função
main(), adicione um loop para iterar pelos argumentos de linha de comando:
for (int i = 1; i < argc; i++) {
// Seu código irá aqui
}
O loop começa do índice 1 porque argv[0] contém o nome do programa.
- Dentro do loop, verifique se o argumento atual começa com
--:
if (strncmp(argv[i], "--", 2) == 0) {
// O argumento é um parâmetro
char *param = argv[i] + 2; // Remove o "--" inicial
char *value = NULL;
// Verifique se há um valor após o parâmetro
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2) != 0) {
value = argv[i + 1];
i++; // Pula o argumento do valor
}
printf("%s:%s\n", param, value);
}
Este código extrai o nome e o valor do parâmetro dos argumentos de linha de comando e os imprime no formato exigido.
- O código final é o seguinte:
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
for (int i = 1; i < argc; i++) {
if (strncmp(argv[i], "--", 2) == 0) {
char *param = argv[i] + 2; // Remove o "--" inicial
char *value = NULL;
// Verifique se há um valor após o parâmetro
if (i + 1 < argc && strncmp(argv[i + 1], "--", 2) != 0) {
value = argv[i + 1];
i++; // Pula o argumento do valor
}
printf("%s:%s\n", param, value);
}
}
return 0;
}
- Salve o arquivo
cmd.c.
Compilar e Executar o Programa
Nesta etapa, você compilará o programa C e o executará com alguns exemplos de argumentos de linha de comando.
- Compile o arquivo
cmd.c:
gcc cmd.c -o cmd
Isso criará um arquivo executável chamado cmd.
- Execute o programa com alguns exemplos de argumentos de linha de comando:
./cmd --arg1 1 --arg2 demo --arg9 labex
Você deverá ver a seguinte saída:
arg1:1
arg2:demo
arg9:labex
- Tente executar o programa com alguns parâmetros duplicados:
./cmd --testarg1 1 --testarg2 demo --testarg1 labex
Você deverá ver a seguinte saída:
testarg1:1
testarg2:demo
testarg1:labex
Parabéns! Você implementou com sucesso o programa de análise de argumentos de linha de comando.
Resumo
Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.



