Ajuda em C

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...
 
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?
 
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...)
 
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.
 
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
 
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:
Back
Topo