49#if LASS_PLATFORM_TYPE == LASS_PLATFORM_TYPE_WIN32
51# define WIN32_LEAN_AND_MEAN
89#if LASS_HAVE_FUNC_STRERROR_R
91 const size_t bufferLength = 256;
92 char buffer[bufferLength + 1];
94# if LASS_HAVE_STRERROR_R_CHAR_P
95 msg = ::strerror_r(errnum, buffer, bufferLength);
98 msg =
"[no error message due to strerror_r failure]";
101 const int rc = ::strerror_r(errnum, buffer, bufferLength);
102 msg = (rc == 0) ? buffer :
"[no error message due to strerror_r failure]";
106 msg =
"[no error message due to strerror_r failure]";
109#elif LASS_PLATFORM_TYPE == LASS_PLATFORM_TYPE_WIN32
111 const size_t bufferLength = 256;
112 char buffer[bufferLength + 1];
113 const errno_t rc = strerror_s(buffer, bufferLength, errnum);
114 msg = (rc == 0) ? buffer :
"[no error message due to strerror_s failure]";
118 std::ostringstream stream;
119 stream <<
"errno " << errnum;
122 stream <<
": " << msg;
127#if LASS_PLATFORM_TYPE == LASS_PLATFORM_TYPE_WIN32
129LASS_META_ASSERT(
sizeof(DWORD) <=
sizeof(
unsigned), unsigned_should_be_big_enough_for_a_DWORD);
136unsigned lass_GetLastError()
138 return GetLastError();
146const std::string lass_FormatMessage(
unsigned error)
148 LASS_ASSERT(
static_cast<DWORD
>(error) == error);
149 LASS_ASSERT(error != 0);
152 if (!FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
153 0,
static_cast<DWORD
>(error), 0, (LPTSTR) &buffer, 0, 0))
155 return "[no error message due to FormatMessage failure]";
157 std::string result = buffer;
const std::string lass_strerror(int errnum)
returns message associated to an CLIB error code
int lass_errno()
returns CLIB errno
void lass_reset_errno()
sets CLIB errno to zero.
general utility, debug facilities, ...
Library for Assembled Shared Sources.