Ir ao conteúdo
  • Cadastre-se
Miguel Gustavo Wilbert

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

Recommended Posts

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!

Compartilhar este post


Link para o post
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.

 

 

 

 

;)

Compartilhar este post


Link para o post
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"

Compartilhar este post


Link para o post
Compartilhar em outros sites

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);

       }

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×