p9-7.c

来自「SUN Solaris8平台下进程间通信」· C语言 代码 · 共 42 行

C
42
字号
#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <termios.h>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;     /* 保证stdin 是终端 */    if (!isatty (STDIN_FILENO)) {        fprintf (stderr, "Not a terminal.\n");        exit (EXIT_FAILURE);    }     /* 保存终端属性以便以后恢复*/    tcgetattr (STDIN_FILENO, &saved_attributes);    atexit (reset_input_mode);     /* 设置终端为非加工、不回显方式 */    tcgetattr (STDIN_FILENO, &tattr);    tattr.c_lflag &= ~(ICANON|ECHO); /* 清除 ICANON和ECHO */    tattr.c_cc[VMIN] = 1;    tattr.c_cc[VTIME] = 0;    tcsetattr (STDIN_FILENO, TCSAFLUSH, &tattr);}int main (void){    char c;    set_input_mode();    while (1){        read (STDIN_FILENO, &c, 1);        if (c == '\004')          /* Ctrl-d */            break;        else            printf("I read %c\n",c);     }     return EXIT_SUCCESS; }

⌨️ 快捷键说明

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