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

Cygwin/Mintty中标准输入的原始输入模式,cygwin,stdin,mintty,Cygwin,Stdin,Mintty,我想在Cygwin/Mintty中将我的标准输入设置为原始输入模式。我该怎么做?现在,它是行缓冲的。对于原始输入模式,我的意思是read返回每个输入的字符 我更愿意这样做,没有任何进一步的依赖关系。也就是说,我想这可能可以通过链接Cygwin的一些LIB来实现,但是,如果可能的话,我希望避免这种情况 一些搜索结果: 我尝试通过SetConsoleMode,但这只适用于Windows控制台,不适用于Mintty。即该代码: // Setting terminal to raw mode..

我想在Cygwin/Mintty中将我的标准输入设置为原始输入模式。我该怎么做?现在,它是行缓冲的。对于原始输入模式,我的意思是
read
返回每个输入的字符

我更愿意这样做,没有任何进一步的依赖关系。也就是说,我想这可能可以通过链接Cygwin的一些LIB来实现,但是,如果可能的话,我希望避免这种情况

一些搜索结果:

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

    // 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...
        }
    }
//将终端设置为原始模式。。。
处理hStdin;
德沃德模式;
//hStdin=GetStdHandle(标准输入句柄);
hStdin=(句柄)\u get\u osfhandle(标准文件号);
if(GetFileType(hStdin)=文件类型字符){

cout系统(“stty-raw”);
是否有效?

如果您有新问题,请单击按钮提问。如果有助于提供上下文,请包含指向此问题的链接。@这不是新问题,而是解决其问题的建议。