Autor Tópico: Terminar a digitação no terminal com chamada ao sistema read() sem digitar enter  (Lida 2187 vezes)

Offline JFALVES

  • Usuário Ubuntu
  • *
  • Mensagens: 5
    • Ver perfil
Preciso de um programa em C que leia uma sequência de caracteres digitados pelo usuário até que uma flag seja lida, no caso, '*',  porém, esse programa só pode ser realizado com chamadas de sistema Linux, sem usar as funções de C de I/O. Estou usando a função read,  e consegui fazer com que ela leia e considere somente os caracteres digitados até o *, porém, a não ser que o usuário tecle enter, o programa continua liberando a digitação.
O trecho de código está abaixo, se puderem me ajudar desde já agradeço.

Código: [Selecionar]
    while (1) {
      if(read(0, buffer+escritos_no_buffer, 1) > 0); //Lê da entrada padrao um caracter por vez, armazenando no vetor buffer         
      if(buffer[escritos_no_buffer] == '*'){ //Se a flag ('*') for digitada
         break; //encerra a leitura
      }
      escritos_no_buffer += 1; //Caso contrário, atualiza a quantidade de caracteres lidos
    }