Você tem dois processos lendo /dev/pts/2
. Um é o shell (ou algum aplicativo) sendo executado lá, o outro é seu aplicativo em pts/1
. É aleatório qual é a leitura mais rápida dos bytes disponíveis.
Eu abri dois terminais (/ dev / pts / 1 e / dev / pts / 2) e iniciei minha aplicação a partir de / dev / pts / 1. Eu quero ler em tempo real de / dev / pts / 2 mas meu código não funciona: na verdade alguns dos símbolos são mostrados no / dev / pts / 1 e alguns deles são mostrados no / dev / pts / 2
FILE *f = fopen("dev/pts/2", "r");
while(1) {
char current = fgetc(f);
printf("%c", current);
fflush(0);
}