>  기사  >  백엔드 개발  >  C 프로그램이 실행을 차단하지 않고 어떻게 사용자 입력을 받아들일 수 있습니까?

C 프로그램이 실행을 차단하지 않고 어떻게 사용자 입력을 받아들일 수 있습니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-30 08:10:38674검색

How Can C   Programs Accept User Input Without Blocking Execution?

C 프로그램을 위한 비차단 콘솔 입력 전략

현대 프로그래밍에서는 프로그램을 실행하는 동안 실시간 사용자 명령을 처리하는 것이 바람직한 경우가 많습니다. 프로그램은 지속적으로 실행되고 정보를 출력합니다. 비차단 콘솔 입력은 이 기능을 달성하는 데 중요합니다. 이 기사에서는 C에서 비차단 콘솔 입력을 효과적으로 구현하기 위한 다양한 기술을 살펴봅니다.

C 11 및 Future를 사용한 비동기 입력

한 가지 접근 방식은 C 11의

예:

#include 
#include 
#include 

static std::string getAnswer()
{    
    std::string answer;
    std::cin >> answer;
    return answer;
}

int main()
{
    std::chrono::seconds timeout(5);
    std::cout << "Do you even lift?" << std::endl << std::flush;
    std::string answer = "maybe"; //default to maybe
    std::future future = std::async(getAnswer);
    if (future.wait_for(timeout) == std::future_status::ready)
        answer = future.get();

    std::cout << "the answer was: " << answer << std::endl;
    exit(0);
}

기타 고려 사항:

위 외에도 방법을 사용하는 경우 개발자는 다음 사용을 고려할 수도 있습니다.

  • 비차단 입력 라이브러리: Boost.Asio 및 libevent와 같은 라이브러리는 전용 비차단 입력 기능을 제공합니다.
  • 플랫폼별 방법: 다양한 운영 체제는 비차단 입력을 위한 시스템 호출을 제공합니다.

접근 방식 선택은 플랫폼 호환성, 성능 요구 사항, 작업 용이성과 같은 요소에 따라 달라집니다. 구현. 다양한 옵션을 탐색하면 특정 프로젝트 요구 사항에 가장 적합한 솔루션을 선택할 수 있습니다.

위 내용은 C 프로그램이 실행을 차단하지 않고 어떻게 사용자 입력을 받아들일 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.