C++ alternative to perror()

前端 未结 2 1378
夕颜
夕颜 2020-12-16 13:02

I know we can use

perror()

in C to print errors. I was just wondering if there is a C++ alternative to this, or whether I have to include

2条回答
  •  暖寄归人
    2020-12-16 13:39

    You could use the boost::system_error::error_code class.

    #include 
    
    #include 
    #include 
    
    void
    PrintError(
            const std::string& message,
            int error
            )
    {
        std::cerr << message << ": " <<
                boost::system::error_code(
                    error,
                    boost::system::get_system_category()
                    ).message()
                << std::endl;
    }
    
    int
    main()
    {
        PrintError( "something went wrong!", EINVAL );
        return 0;
    }
    

    it's a tad verbose, and somewhat overkill if you aren't already using the boost_system library.

提交回复
热议问题