18to_localtime_string(std::chrono::system_clock::time_point time_point, const
char* format = "%Y-%m-%d %H:%M:%S") {
21 std::time_t time = std::chrono::system_clock::to_time_t(time_point);
26 if (localtime_r(&time, &tm_buf) != &tm_buf) {
29 return std::error_code{err, std::generic_category()};
32 constexpr std::size_t BUF_SZ = 1024;
33 std::array<char, BUF_SZ> buf{};
35#pragma GCC diagnostic push
36#pragma GCC diagnostic ignored "-Wformat-nonliteral"
38 if (std::size_t num_chars = std::strftime(buf.data(), buf.size(), format, &tm_buf)) {
39 return std::string{buf.begin(), num_chars};
41#pragma GCC diagnostic pop
45 return std::error_code{err, std::generic_category()};
std::string get_err_msg()
Obtain Linux error (i.e., errno) message via libc functions.
Definition logging.hpp:97