ReadConsoleInput 함수

콘솔 입력 버퍼에서 데이터를 읽고 버퍼에서 제거합니다.

구문

BOOL WINAPI ReadConsoleInput(
  _In_  HANDLE        hConsoleInput,
  _Out_ PINPUT_RECORD lpBuffer,
  _In_  DWORD         nLength,
  _Out_ LPDWORD       lpNumberOfEventsRead
);

매개 변수

hConsoleInput [in]
콘솔 입력 버퍼에 대한 핸들입니다. 핸들에는 GENERIC_READ 액세스 권한이 있어야 합니다. 자세한 내용은 콘솔 버퍼 보안 및 액세스 권한을 참조하세요.

lpBuffer [out]
입력 버퍼 데이터를 수신하는 INPUT_RECORD 구조체 배열에 대한 포인터입니다.

nLength [in]
배열 요소에서 lpBuffer 매개 변수가 가리키는 배열의 크기입니다.

lpNumberOfEventsRead [out]
읽은 입력 레코드 수를 받는 변수에 대한 포인터입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

설명

nLength 매개 변수에서 요청된 레코드 수가 버퍼에서 사용할 수 있는 레코드 수를 초과하면 사용 가능한 개수가 읽혀집니다. 하나 이상의 입력 레코드를 읽을 때까지 함수가 반환되지 않습니다.

프로세스는 대기 함수 중 하나에서 콘솔 입력 버퍼 핸들을 지정하여 읽지 않은 콘솔 입력이 있는 시기를 결정할 수 있습니다. 입력 버퍼가 비어 있지 않으면 콘솔 입력 버퍼 핸들의 상태가 신호를 수신합니다.

콘솔의 입력 버퍼에서 읽지 않은 입력 레코드 수를 확인하려면 GetNumberOfConsoleInputEvents 함수를 사용합니다. 읽지 않은 레코드 수에 영향을 주지 않고 콘솔 입력 버퍼에서 입력 레코드를 읽으려면 PeekConsoleInput 함수를 사용합니다. 콘솔의 입력 버퍼에서 읽지 않은 모든 레코드를 카드 없도록 하려면 FlushConsoleInputBuffer 함수를 사용합니다.

이 함수는 콘솔의 현재 코드 페이지에서 유니코드 문자 또는 8비트 문자를 사용합니다. 콘솔의 코드 페이지는 처음에 기본적으로 시스템의 OEM 코드 페이지로 설정됩니다. 콘솔의 코드 페이지를 변경하려면 SetConsoleCP 또는 SetConsoleOutputCP 함수를 사용합니다. 레거시 소비자는 chcp 또는 mode con cp select= 명령을 사용할 수도 있지만 새로운 개발에는 추천되지 않습니다.

예제

예제는 입력 버퍼 이벤트 읽기를 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
헤더 ConsoleApi.h(WinCon.h를 통해, Windows.h 포함)
라이브러리 Kernel32.lib
DLL Kernel32.dll
유니코드 및 ANSI 이름 ReadConsoleInputW (유니코드) 및 ReadConsoleInputA (ANSI)

참고 항목

콘솔 함수

FlushConsoleInputBuffer

GetNumberOfConsoleInputEvents

INPUT_RECORD

하위 수준 콘솔 입력 함수

PeekConsoleInput

ReadConsole

ReadConsoleInputEx

ReadFile

SetConsoleCP

SetConsoleOutputCP

WriteConsoleInput