XRootD
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)

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(), 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: