Boost C++ Libraries/Boost.Asio

Boost.Asio 개요 - 시그널 핸들링

까마귀75 2020. 12. 11. 17:54
728x90
반응형

시그널 핸들링 (Signal Handling)

Boost.Asiosignal_set이라는 클래스를 사용하여 시그널 핸들링을 지원한다. 프로그램은 세트에 하나 이상의 시그널을 추가한 다음 async_wait() 작업을 수행할 수 있다. 시그널 중 하나가 발생하면 지정된 핸들러가 호출된다. 동일한 시그널 번호를 여러 signal_set 개체에 등록할 수 있지만, 시그널 번호는 Boost.Asio에서만 사용해야 한다.

void handler(
    const boost::system::error_code& error,
    int signal_number)
{
  if (!error)
  {
    // A signal occurred.
  }
}

...

// Construct a signal set registered for process termination.
boost::asio::signal_set signals(io_context, SIGINT, SIGTERM);

// Start an asynchronous wait for one of the signals to occur.
signals.async_wait(handler);

 

Microsoft Visual C++ 런타임 라이브러리가 Ctrl+C와 같은 콘솔 이벤트를 동등한 시그널에 매핑하므로 시그널 처리는 Windows에서 작동한다.

더 보기

signal_set, HTTP server example (C++03), HTTP server example (C++11).

 

 

Boost.Asio 개요  Boost.Asio 홈

728x90
반응형