首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cygwin/Mintty中标准输入的原始输入模式

Cygwin/Mintty中标准输入的原始输入模式
EN

Stack Overflow用户
提问于 2014-03-25 20:34:58
回答 1查看 1K关注 0票数 1

我想让我的stdin在Cygwin/Mintty中进入原始输入模式。我该怎么做?现在,它是行缓冲的。对于raw输入模式,我的意思是每个输入的字符都会返回read

我更喜欢在没有更多依赖的情况下这样做。也就是说,我猜这可能可以通过链接Cygwin的一些库来完成,但是,如果可能的话,我想避免这种情况。

一些搜索结果:libuv issuelibuv win/tty.cCygwin tty.ccCygwin fhandler_tty.ccCygwin post (non-blocking stdin)Mintty issueMsysgit issue

我试过通过SetConsoleMode,但这只适用于Windows控制台,而不适用于Mintty。即此代码:

代码语言:javascript
复制
    // Setting terminal to raw mode...
    HANDLE hStdin;
    DWORD mode;
    //hStdin = GetStdHandle(STD_INPUT_HANDLE);
    hStdin = (HANDLE) _get_osfhandle(STDIN_FILENO);

    if (GetFileType(hStdin) == FILE_TYPE_CHAR) {
        cout << "stdin is file type char" << endl;
        GetConsoleMode(hStdin, &mode);
        if (
            !SetConsoleMode(
                hStdin,
                mode & ~(ENABLE_LINE_INPUT|ENABLE_ECHO_INPUT))
        ) {
            cerr << "Cannot set stdin to raw mode" << endl;
            // ignore...
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2014-04-20 03:09:40

system( "stty -raw" );能工作吗?

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

https://stackoverflow.com/questions/22634788

复制
相关文章

相似问题

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