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.
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
}