Como ler de outro terminal?

1

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);
}
    
por WildWind03 07.05.2016 / 13:52

1 resposta

1

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.

    
por 07.05.2016 / 14:42