[Prévia] [Próxima] [Prévia por assunto] [Próxima por assunto]
[Índice cronológico] [Índice de assunto]

Re: Elaborando melhor a pergunta sobre as opções




Andre Luiz Breves de Oliveira wrote:

> Fui um pouco vago na pergunta sobre opções do Make, vou elaborar um pouco:
>
>   - Você diz no enunciado que as opções podem ser definidas em qualquer ordem. Isso deixa a parte de
> tratamento de opções um pouco complicada, eu teria que primeiro ler as opções, usar uma estrutura auxiliar
> para guardar os goal's... Pode considerar que primeiro vem as opções -g -s -r, e depois vem os goal's?

Na verdade não faz diferença certo?

Um código como:

while (tem argumentos) {
  if (argv[0][0] == '-'){
      /* Processa os parâmetros */
  } else {
      /* Processa o goal */
  }
}

Já deve ser o suficiente.
Sim, vc deve precisar de uma estrutura auxiliar para guardar os goals.
Um vetor de strings dá conta do serviço! :-)
Não se esqueça de usar strcmp(), strcpy() e outros para manipular strings! Tem gente que se
esquece disso, por incrível que pareça!!!!!! :-)
Se você quiser elaborar um pouco mais, pode tentar a biblioteca getopt (man 3 getopt)
que serve para fazer esse parsing para você.


>   - Se forem usadas as opções -r ou -s, mas não forem definidos nenhum goal, mesmo assim eu terei que
> processar o primeiro target do MakeFile (ou terei que considerar algum goal)?

Bom, ai seria melhor o Coelho explicar, porque pelo que eu entendi se você usar uma
dessas opções ele apenas vai realizar o que está escrito na descrição da opção. Creio que nesses
dois casos você pode ignorar a existência de goals na linha de comando e você vai poder
interromper a execução após realizar a tarefa dita na descrição do parâmetro.

De qualquer modo, aguardo a resposta do Coelho sobre isso!

Té+++
[]'s

-----
Nelson Guedes Paulo Junior
E-mail:     UIN: 2489382 (Tender [:alpha:]*)
-----------------------------------------------------------------------
Eu cavo, tu cavas, ele cava, nós cavamos, vós cavais,
eles cavam... Não é bonito, mas é profundo.
-----------------------------------------------------------------------