首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Termios输入函数不工作

Termios输入函数不工作
EN

Stack Overflow用户
提问于 2018-01-06 05:08:51
回答 1查看 194关注 0票数 0

我有一个函数:

代码语言:javascript
复制
int term_option(int option)
{
    struct termios attributes;
    switch(option)
    {

    case 0: // Echo On
        if(tcgetattr(STDIN_FILENO,&attributes) != 0) return (-1);
        attributes.c_lflag |= ECHO;
        attributes.c_lflag |= ICANON;
        attributes.c_lflag |= ISIG;
        if(tcsetattr(STDIN_FILENO,TCSANOW,&attributes) != 0) return (-1);
        break;

    case 1: // Echo Off
        if(tcgetattr(STDIN_FILENO,&attributes) != 0) return (-1);
        attributes.c_lflag &= ~(ECHO);
        if(tcsetattr(STDIN_FILENO,TCSAFLUSH,&attributes) != 0) return (-1);
        break;

    case 2: // Wait for the keyboard to be touched
        if(tcgetattr(STDIN_FILENO,&attributes) != 0) return (-1);
        attributes.c_lflag    &= ~(ICANON);
        attributes.c_cc[VMIN]  = 1;
        attributes.c_cc[VTIME] = 1;
        if(tcsetattr(STDIN_FILENO,TCSANOW,&attributes) != 0) return (-1);
        break;

    case 3:
        if(tcgetattr(STDIN_FILENO,&attributes) != 0) return (-1);
        attributes.c_lflag    &= ~(ICANON);
        attributes.c_lflag    &= ~(ISIG);
        attributes.c_cc[VMIN]  = 0;
        attributes.c_cc[VTIME] = 0;
        if(tcsetattr(STDIN_FILENO,TCSANOW,&attributes) != 0) return (-1);
        break;
    }
        return 0;
}

当我使用以下命令调用它时:

代码语言:javascript
复制
    term_option(1);
    term_option(3);

它根本不返回任何内容。事实上,它看起来甚至没有被执行。我不知道为什么。是的,我确实使用了termios.h头文件。有谁有什么想法吗?

谢谢。

下面是gdb的结果:

https://pastebin.com/u3g8Xafn

EN

回答 1

Stack Overflow用户

发布于 2018-01-06 06:17:48

请检查需要设置的波特率。使用您正在使用的机器和您正在连接的设备。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48121311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档