/** @file
$Id$
$Date$
$Author$
@copy © Marc Wäckerlin
@license LGPL, see file COPYING
$Log$
Revision 1.3 2005/02/28 07:29:18 marc
added ifdef for non glibc (Solaris)
Revision 1.2 2005/02/18 15:53:07 marc
I'm so stupid, there's strerror for mapping errno to a string...
Revision 1.1 2005/02/08 12:30:22 marc
new in release 1.8.0
1 2 3 4 5 6 7 8
5678901234567890123456789012345678901234567890123456789012345678901234567890
*/
#include
#include
#include
#include
#ifndef __GLIBC__
#include
#endif
mrw::Errno::Errno() throw(): _errno(errno) {}
mrw::Errno::operator std::string() const throw(std::bad_exception) {
#ifdef __GLIBC__
char error[1024];
return !strerror_r(_errno, error, 1024) ?
error : std::string("errno=")+_errno;
#else
return mrw::ifelse(strerror(_errno), (std::string("errno=")+_errno).c_str());
#endif
}
std::string mrw::Errno::string() const throw(std::bad_exception) {
#ifdef __GLIBC__
char error[1024];
return !strerror_r(_errno, error, 1024) ?
error : std::string("errno=")+_errno;
#else
return mrw::ifelse(strerror(_errno), (std::string("errno=")+_errno).c_str());
#endif
}