termios.c

来自「一个C源代码分析器」· C语言 代码 · 共 61 行

C
61
字号
#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <termios.h>/* Use this variable to remember original terminal attributes. */struct termios saved_attributes;void reset_input_mode (void){  tcsetattr (STDIN_FILENO, TCSANOW, &saved_attributes);}void set_input_mode (void){  struct termios tattr;  char *name;  /* Make sure stdin is a terminal. */  if (!isatty (STDIN_FILENO))    {      fprintf (stderr, "Not a terminal.\n");      exit (EXIT_FAILURE);    }  /* Save the terminal attributes so we can restore them later. */  tcgetattr (STDIN_FILENO, &saved_attributes);  atexit (reset_input_mode);/*@group*/  /* Set the funny terminal modes. */  tcgetattr (STDIN_FILENO, &tattr);  tattr.c_lflag &= ~(ICANON|ECHO); /* Clear ICANON and ECHO.  */  tattr.c_cc[VMIN] = 1;  tattr.c_cc[VTIME] = 0;  tcsetattr (STDIN_FILENO, TCSAFLUSH, &tattr);}/*@end group*/intmain (void){  char c;  set_input_mode ();  while (1)    {      read (STDIN_FILENO, &c, 1);      if (c == '\004')		/* @kbd{C-d} */	break;      else	putchar (c);    }  return EXIT_SUCCESS;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?