XRootD
Loading...
Searching...
No Matches
XrdSysE2T.hh File Reference
#include <cerrno>
+ Include dependency graph for XrdSysE2T.hh:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

const char * XrdSysE2T (int errcode)
 

Function Documentation

◆ XrdSysE2T()

const char * XrdSysE2T ( int errcode)
extern

Convert error number to string in a thread-safe way.

Parameters
errcodeThe error number (usually from errno).
Returns
A non-nil pointer to the string holding the error description.

Definition at line 99 of file XrdSysE2T.cc.

100{
101 char eBuff[80];
102
103// Check if we can return this immediately
104//
105 if (errcode == 0) return Errno2String[0];
106 if (errcode > ERRNOBASE && errcode <= ERRNOBASE + maxErrno)
107 return Errno2String[errcode - ERRNOBASE];
108
109// If this is a negative value, then return a generic message
110//
111 if (errcode < 0) return "negative error";
112
113// Our errno registration wasn't sufficient, so check if it's already
114// registered and if not, register it.
115//
116 e2sMutex.Lock();
117 std::string &eTxt = e2sMap[errcode];
118 if (!eTxt.size())
119 {snprintf(eBuff, sizeof(eBuff), "unknown error %d", errcode);
120 eTxt = std::string(eBuff);
121 e2sMap[errcode] = eTxt;
122 }
123
124// Return the result
125//
126 e2sMutex.UnLock();
127 return eTxt.c_str();
128}
#define ERRNOBASE
Definition XrdSysE2T.cc:40

References ERRNOBASE.

Referenced by XrdOucGMap::XrdOucGMap(), XrdXmlRdrTiny::XrdXmlRdrTiny(), XrdXmlRdrXml2::XrdXmlRdrXml2(), XrdTlsSocket::Accept(), XrdSys::IOEvents::PollE::Begin(), XrdSys::IOEvents::PollKQ::Begin(), XrdSys::IOEvents::PollPoll::Begin(), XrdSys::IOEvents::PollPort::Begin(), XrdSysLogger::Bind(), XrdCl::CheckSumManager::Calculate(), XrdCl::LocalFileHandler::Close(), XrdCpConfig::Config(), XrdSysLogging::Configure(), XrdTlsSocket::Connect(), XrdXmlMetaLink::Convert(), DoTail(), XrdSysError::ec2text(), XrdDigFS::Emsg(), XrdSfsNative::Emsg(), XrdSecProtocolsss::eMsg(), Ereason(), XrdOucUtils::eText(), XrdW41Dirs::Expand(), Fatal(), XrdNetIF::GetIF(), XrdSys::IOEvents::Poller::GetRequest(), main(), main(), XrdCl::AsyncSocketHandler::OnConnectionReturn(), XrdSsiFileSess::open(), XrdCl::LogOutFile::Open(), XrdTls::RC2Text(), XrdCl::LocalFileHandler::Read(), XrdCl::LocalFileHandler::ReadV(), XrdXrootdAioTask::SendError(), XrdW41Gate::Serialize(), XrdNetAddr::Set(), XrdOucECMsg::SetErrno(), XrdCl::JobManager::Start(), XrdCl::PollerBuiltIn::Start(), XrdCl::TaskManager::Start(), XrdCl::LocalFileHandler::Stat(), XrdCl::TaskManager::Stop(), XrdCl::LocalFileHandler::Sync(), XrdOfsCPFile::Target(), XrdCl::Status::ToString(), XrdPfc::FPurgeState::TraverseNamespace(), XrdCl::LocalFileHandler::Truncate(), XrdOucUtils::ValPath(), XrdCl::LocalFileHandler::VectorRead(), XrdCl::LocalFileHandler::VectorWrite(), XrdSecProtect::Verify(), XrdW41Gate::Wait41(), XrdCl::AsyncHSWriter::Write(), XrdCl::AsyncMsgWriter::Write(), XrdCl::LogOutFile::Write(), XrdCl::LocalFileHandler::Write(), XrdSsiFileSess::write(), XrdCl::LocalFileHandler::WriteV(), XrdSecsssAdmin_addKey(), XrdSecsssAdmin_delKey(), XrdSecsssAdmin_insKey(), XrdOssSys::xspaceBuild(), and XrdSysLogger::zHandler().

+ Here is the caller graph for this function: