#include #include #include #include #include #include int main(void) { struct termios told, tnew; if (tcgetattr(STDIN_FILENO, &told) == -1) err(errno, "tcgetattr"); tnew = told; tnew.c_lflag &= ~(ECHO | ECHONL | ICANON); if (tcsetattr(STDIN_FILENO, TCSADRAIN, &tnew) == -1) err(errno, "tcsetattr"); for (;;) { uint8_t c; if (read(STDIN_FILENO, &c, 1) < 1) break; (void) fprintf(stdout, "%d, ", c); (void) fflush(stdout); if (c == 27) break; } if (tcsetattr(STDIN_FILENO, TCSADRAIN, &told) == -1) err(errno, "tcsetattr"); exit(EXIT_SUCCESS); }