1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em C

Discussão em 'Programação' iniciada por markoni, 13 de Maio de 2008. (Respostas: 18; Visualizações: 999)

  1. markoni

    markoni Power Member

    Boas, tenho como trabalho de SO fazer um programa em C que simule o CMD do "DOS", mas para correr com linux.
    Uma duvida: pretendo que me apareca o PATH e se possivel grava-lo numa variavel char, é possivel?isto tudo usando o comando execl ou assim...
     
  2. E em que parte é que precisas de ajuda?
     
  3. markoni

    markoni Power Member

    UNIX para utilizadores DOS
    Pretende-se criar um interprete de comandos semelhante ao "command.com"
    do MSDOS (ou cmd do Windows) que possa ser utilizado por novos
    utilizadores.
    Este programa deverá:
    • permitir definir variáveis de ambiente tais como PATH, PROMPT....
    • implementar o maior número possível de comandos internos ( dir, cd,
    date,etc..).

    Alguem me ajuda a fazer isto?
     
  4. Repito a pergunta anterior.
     
  5. JuSt_Me_AnD_yOu

    JuSt_Me_AnD_yOu What is folding?

    Claro que podes gravar numa char. A ideia disso no final ate é pores o PATH dentro de um ficheiro (no caso no autoexec.bat)
     
  6. markoni

    markoni Power Member

    a minha duvida é como é k isto se faz...!!
     
  7. Mas o quê em concreto? Lançar processos, definir os parâmetros dos comandos, definir variáveis de ambiente...?
     
  8. markoni

    markoni Power Member

    Definir variaveis ambiente e quanto ao gravar o path numa variavel podes ajudar no codigo?
     
  9. JuSt_Me_AnD_yOu

    JuSt_Me_AnD_yOu What is folding?

    Entao pedes o path e gravas numa variavel char.. Simples scanf. Não estou perceber a duvida
     
  10. MPalhas

    MPalhas Power Member

    acho que é mesmo isso que ele não sabe fazer
     
  11. The_True_Eue

    The_True_Eue Power Member

    Eu estou a fazer algo semelhante, mas mais complexo. Podes ver o meu código aqui, se é que isso ajuda em alguma coisa. Para as variáveis de ambiente tens de usar setenv, putenv, etc. Vê no manual do sistema... (man 2 setenv, ou man 3 setenv, não tenho a certeza...)
     
  12. markoni

    markoni Power Member

    Ok...agora outra questão..existe algum função que recolhe um caracter e não espere pelo enter para continuar o codigo?
     
  13. The_True_Eue

    The_True_Eue Power Member

    Oooooh... para que precisas disso exactamente?

    As funções são getch ou getche ou getchar ou algo parecido.
    Por alguma razão que desconheço tenho aqui um bip no meu cérebro a dizer que não se deve usar isso... Não me perguntes porquê... porque não sei.
     
  14. markoni

    markoni Power Member

    mas estas esperam pelo enter :(
     
  15. MPalhas

    MPalhas Power Member

    não, não esperam. esperam por uma entrada no buffer, e o enter conta como uma (caracter ASCII 13)
    talvez o getchar espere pelo enter (não sei ao certo o que faz), mas getch e getche não
     
  16. markoni

    markoni Power Member

    sim ,mas eu tou a trabalhar em linux, e essas n estão incluidas
     
  17. Baderous

    Baderous Banido

    Pesquisa na biblioteca <ncurses.h>.
     
  18. markoni

    markoni Power Member

    Código:
    int main()
    {
    
        char ch;    //  
    
           initscr();    //Inicializa a ncurses
            clear();     //Limpa a tela
    
            //mvprintw(3, 10, "Olá, Mundo!"); 
            //Na linha 3, coluna 3 escreva Olá, Mundo!
            refresh();   //Atualizar tela
        ch= getch();       
        switch (ch) {
              case KEY_BACKSPACE: /* user pressed backspace */ 
                printf("Tecla Apagar premida");
    break;
              case KEY_UP:  /* user pressed up arrow key */
                  printf("ACIMA");
    break;
    
              case KEY_DOWN:  /* user pressed up arrow key */
             printf("ABAixo");
        break;
             default:printf("Nenhuma deestas ");
    }
            endwin();   //Finalizar ncurses
            return(0);
    }
    Porque é k isto n faz o k eu kero kd carrego no backspace?(aparece "^?"
     
    Última edição pelo moderador: 17 de Maio de 2008
  19. markoni

    markoni Power Member

    será pk n posso usar o printf?
     

Partilhar esta Página