#include <iostream>
#include <system_error>

int main()
{

     std::error_condition econd = std::system_category().default_error_condition(EFAULT);
      std::cout << "Category: " << econd.category().name() << '\n'
              << "Value: " << econd.value() << '\n'
              << "Message: " << econd.message() << '\n';

    try
    {
        throw std::system_error( std::error_code(EFAULT, std::system_category()) );
    }
    catch (const std::system_error& error)
    {
        std::cout << "Error: " << error.code()
                  << " - " << error.code().message()
                  << ". Category: " << error.code().category().name()
                   << '\n';
    }
}