lfc_readdirxr(3) - Linux man page
Name
lfc_readdirxr - read LFC directory opened by lfc_opendir in the name serverSynopsis
#include <sys/types.h>#include "lfc_api.h"
struct lfc_direnrep *lfc_readdirxr (lfc_DIR *dirp, char *se)
Description
lfc_readdirxr reads the LFC directory opened by lfc_opendir in the name server. This routine returns a pointer to a structure containing the current directory entry (basename, guid and filesize) and the replica information.struct lfc_rep_info {
u_signed64 fileid;
char status;
char *host;
char *sfn;
};
struct lfc_direnrep {
u_signed64 fileid;
char guid[CA_MAXGUIDLEN+1];
mode_t filemode;
u_signed64 filesize;
int nbreplicas;
struct lfc_rep_info *rep; /* array of replica info structures */
unsigned short d_reclen; /* length of this entry */
char d_name[1]; /* basename in variable length */
};lfc_readdirxr caches a variable number of such entries, depending on the filename size, to minimize the number of requests to the name server.
- dirp
- specifies the pointer value returned by lfc_opendir.
- se
- allows to restrict the replica entries to a given SE.
Return Value
As lfc_readdirxr returns a null pointer both at the end of the directory and on error, an application wishing to check for error situations should set serrno to 0, then call lfc_readdirxr, then check serrno and if it is non-zero, assume an error has occurred.
Errors
- EBADF
- File descriptor in DIR structure is invalid.
- ENOMEM
- Memory could not be allocated for unmarshalling the reply.
- EFAULT
- dirp is a NULL pointer.
- EINVAL
- The length of se exceeds CA_MAXHOSTNAMELEN.
- SECOMERR
- Communication error.
- ENSNACT
- Name server is not running or is being shutdown.