Como fazer o programa que reagirá pressionando o botão (como “mais” em 'q') [fechado]

1

Estou tentando perceber como funciona o pg \ more \ less utilitários. Por exemplo, gato somebigfile | Mais. Mais agora no modo interativo. Sua tabela de fd é: 0 (leia o tubo do gato) 1 (stdout) 2 (stderr)

Eu posso abrir / dev / tty em 3 fd e ler os comandos daí. Mas mais pode executar algumas ações sem entrar pressionando. No linux eu posso usar ncurses. O que preciso perceber para fazer isso no Solaris?

    
por izoomko 31.10.2015 / 12:20

1 resposta

1

A idéia básica é ler () um caractere de sua entrada; veja link como exemplo (que descobri por meio de um resultado de pesquisa no Google do link ):

int readch(void)
{
    unsigned char c;

    errno = 0;
    if (read(fileno(stderr), &c, 1) <= 0) {
        if (errno != EINTR)
            end_it(0);
        else
            c = otty.c_cc[VKILL];
    }
    return (c);
}
    
por 31.10.2015 / 12:52