Ir ao conteúdo
  • Cadastre-se

criar um simulador de fluxo de processos em C, preciso de auxílio


Posts recomendados

Olá, boa noite!

 

É o seguinte galera, eu tenho que iniciar um programa em c digitando um comando no terminal. 

Nesse comando, eu tenho que colocar dois valores valiosos para o programa.

É um trabalho que tenho na facul(criar um simulador de fluxo de processos), mas sou iniciante em c.

 

Ex: O programa iniciará quando eu digitar -sfp -xxx -t , onde:

 

-sfp = simulador de fluxo de processos

-xxx = aqui eu coloco o número de processos que serão criados. -200, -999, -20....

-t = o tempo que a tela fica congelada, para o usuário ver os processos e seus estados. -10, -5, -2. segundos.

 

A minha questão é:  

Como pegar esses valores e, como iniciar com o comando acima.

 

 

Obrigado!

Link para o comentário
Compartilhar em outros sites

Hey '!'

 

Eu posso resolver com strings de formatação na função scanf.

Assim: "-sp%c%d%d"

Após, usando conjunto de instruções IF aninhadas, vou verificar os dados e

se os limites de -xxx & -t foram respeitados na entrada de dados scanf;

 

Hint: Um dica é, a função scanf retorna sempre um valor referente ao numero de inputs, neste

caso teria de retorna 3, sendo uma entrada de dados bem sucedida. Outras instruções IF

verificaram se essa entrada é válida ou não válida.

 

 

 

 

;)

Link para o comentário
Compartilhar em outros sites

Você precisa usar os argumentos argc (arguments counter) e argv (arguments values) no main, deste modo:

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

Onde argc conterá o número total de argumentos, e argv será um vetor de strings onde cada argumento passado (separados por 1 espaço) será uma string, tal que a primeira string é o nome do próprio programa.
 

Quando chamado: programa -parametro1 20 -parametro3 -parametro4 abcargc = 6argv[0] = "programa"argv[1] = "-parametro1"argv[2] = "20"argv[3] = "-parametro3"argv[4] = "-parametro4"argv[5] = "abc"
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
  • 2 semanas depois...

Olá colega. Segue um exemplo que você pediu:

 

//início  passando parâmetros argc, argv


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

       int n =0;

       int t;

 

 

       if(argc != 3){

            printf("quantidade de entradas inferior ao blabla\n");

       } else {

               n = atoi(argv[1]);

               t = atoi(argv[2]);

               printf("n %i\n", n);

               printf("t %i\n", t);

       }

}

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...