Podivej se na knihovnu curses (ncurses), funkce cbreak. Je to ale trochu opruz pokud ncurses vyuzijes vylozene jen kvuli "emulaci" readkey protoze tam je spousta omacky navic (inicializace, vytvareni okna atd).

Pomoci funkci z term.h to pujde urcite take resit ale nastavit korektne parametry terminalu asi nebude uplne jednoduche...