std::system_category

std::system_category (시스템 오류 카테고리)

플랫폼 특정 시스템 오류 도메인에 해당하는 표준 오류 카테고리를 돌려주는 함수예요. 운영체제가 제공하는 원시 오류 코드를 나타내요. C++11부터 있어요.

출처: cppreference

본문

<system_error> 헤더에 정의돼 있고, 시스템 오류 카테고리를 돌려줘요.

const std::error_category& system_category() noexcept;

system_category()는 플랫폼 특정 시스템 오류 코드를 나타내는 표준 오류 카테고리를 돌려줘요. std::system_errorstd::filesystem·std::thread 등이 시스템 호출 실패를 보고할 때 기본적으로 이 카테고리를 사용해요.

  • system_category().name()"system"을 돌려줘요.
  • message(ev)는 해당 운영체제의 오류 번호에 대한 원시 설명을 돌려줘요.

generic_category(POSIX 표준 오류 도메인)와 달리, system 카테고리는 운영체제 고유의 오류 번호 도메인(예: Windows의 GetLastError 값)을 나타내요. 따라서 같은 정수 값이라도 운영체제마다 의미가 다를 수 있어요. error_code::equivalent·default_error_condition 덕분에 system 코드가 generic 조건과도 비교될 수 있어요.

#include <system_error>
#include <iostream>

// Windows에서 어떤 시스템 호출이 실패했을 때
std::error_code ec(ERROR_FILE_NOT_FOUND, std::system_category());
std::cout << ec.category().name() << ' ' << ec.message() << '\n';

이렇게 플랫폼 특정 오류 코드를 캡슐화하는 데 쓰여요.

더 알아보기 (Learn more)

cppreference