0
Cygwin/Mintty에서 원시 입력 모드로 내 표준 입력을 원합니다. 어떻게해야합니까? 지금은 라인 버퍼입니다. 원시 입력 모드에서는 입력 한 모든 문자에 대해 read
이 반환됩니다.Cygwin/Mintty에서 stdin의 원시 입력 모드
나는 더 이상의 의존성없이 그것을하고 싶다. 나는. 아마도 Cygwin의 일부 libs에 링크하여이 작업을 수행 할 수 있다고 생각합니다. 그러나 가능한 경우이를 피하고 싶습니다.
일부 검색 결과 : libuv issue, libuv win/tty.c, Cygwin tty.cc, Cygwin fhandler_tty.cc, Cygwin post (non-blocking stdin), Mintty issue, Msysgit issue
내가 SetConsoleMode
통해했지만, 그뿐만 아니라 Mintty를 들어, Windows 콘솔 작동합니다. 나는. 이 코드 :
// 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...
}
}
새로운 질문이있는 경우 [질문하기] (http://stackoverflow.com/questions/ask) 버튼을 클릭하여 질문하십시오. 컨텍스트를 제공하는 데 도움이되는 경우이 질문에 대한 링크를 포함하십시오. – trudyscousin
@trudyscousin 새로운 질문이 아니라 그의 질문에 대한 해결책을 제안했습니다. – chacham15