Ceci est probablement plus compliqué que vous imaginez. Pour ce faire, vous devrez probablement prendre en charge le contrôle de l'écho des caractères que l'utilisateur saisit, etc.
Jetez un coup d'œil à la bibliothèque de curses. La fonction wgetch devrait être ce dont vous avez besoin, mais vous devrez d'abord initialiser les sorts, etc. Lisez les pages de manuel - si vous êtes chanceux, vous trouverez les pages de manuel ncurses ou curses-intro. Voici un extrait:
To initialize the routines, the routine initscr or newterm must be
called before any of the other routines that deal with windows and
screens are used. The routine endwin must be called before exiting.
To get character-at-a-time input without echoing (most interactive,
screen oriented programs want this), the following sequence should be
used:
initscr(); cbreak(); noecho();
Most programs would additionally use the sequence:
nonl();
intrflush(stdscr, FALSE);
keypad(stdscr, TRUE);
Si vous ne l'avez pas obtenu cette page de manuel/pour plus d'info, regardez les pages de manuel de fonction individuelles.
+1. Je n'ai pas réalisé qu'il est possible de désactiver seulement certaines touches dans le mode cuit. – Dummy00001
Ceci est incomplet. Vous devez également désactiver^U ou l'utilisateur peut toujours effacer toute la ligne en attente. Aussi^W. Il peut y avoir plus; vérifier. Une approche plus sûre désactiverait complètement le mode ICANON. –
R. - vous avez raison. Les spécifications OP ne comprennent pas cela, IMO. Et vous auriez besoin de lire à travers l'ensemble struct termios désactiver les possibilités non? Comme mentionné ailleurs, une solution complète n'est pas ce que j'ai posté. –