52 const int dirhdrln = dp->d_name - (
char *)dp;
57 if (!myDirVec && !
Open()) {eNum = errno;
return 0;}
61 if (nxtEnt >= numEnt) {eNum = 0;
return 0;}
65 dirEnt = myDirVec->
At(nxtEnt);
66 d_name = dirEnt->
GetName().c_str();
67 d_nlen = dirEnt->
GetName().length();
71 if (!dp) dp = myDirEnt;
76 #if defined(__APPLE__) || defined(__FreeBSD__) || defined(__GNU__) || (defined(__FreeBSD_kernel__) && defined(__GLIBC__))
77 dp->d_fileno = nxtEnt;
78 dp->d_namlen = d_nlen;
83 dp->d_reclen = d_nlen + dirhdrln;
84 strncpy(dp->d_name, d_name, d_nlen);
85 dp->d_name[d_nlen] =
'\0';
96 static const size_t dEntSize =
sizeof(dirent64) +
maxDlen + 1;
102 if (!myDirEnt && !(myDirEnt = (dirent64 *)malloc(dEntSize)))
111 myDirVec, (uint16_t)0),
ecMsg);
115 if (rc)
return (DIR *)0;
120 return (DIR *)&
fdNum;
const std::string & GetName() const
Get file name.
ListEntry * At(uint32_t index)
Get an entry at given index.
uint32_t GetSize() const
Get the size of the listing.
XRootDStatus DirList(const std::string &path, DirListFlags::Flags flags, ResponseHandler *handler, uint16_t timeout=0) XRD_WARN_UNUSED_RESULT
std::string GetPathWithParams() const
Get the path with params.
int SetErrno(int ecc, int retval=-1, const char *alt=0)
dirent64 * nextEntry(dirent64 *dp=0)
static const size_t maxDlen
static int Result(const XrdCl::XRootDStatus &Status, XrdOucECMsg &ecMsg, bool retneg1=false)
XrdCl::DirListFlags::Flags dlFlag