Provided by: liblfc-dev_1.13.0-1_amd64 bug


       lfc_statg - get information about a LFC file or directory in the name server


       #include <sys/types.h>
       #include "lfc_api.h"

       int lfc_statg (const char *path, const char *guid, struct lfc_filestatg *statbuf)

       int lfc_statr (const char *sfn, struct lfc_filestatg *statbuf)


       lfc_statg  gets  information  about a LFC file or directory, having the given GUID, in the
       name server.

       lfc_statr retrieves information about the given replica.

       The file can be specified by path name or by guid.  If both are given, they must point  at
       the same file.

       guid   specifies the Grid Unique IDentifier.

       path   specifies  the  logical  pathname relative to the current LFC directory or the full
              LFC pathname.

       sfn    is either the Site URL or the Physical File Name for the replica.

       The structure pointed to by statbuf contains the following members:
              u_signed64     fileid;             /* entry unique identifier */
              char      guid[CA_MAXGUIDLEN+1]    /* GUID */
              mode_t         filemode;      /* see below */
              int       nlink;              /* number of files in a directory */
              uid_t          uid;
              gid_t          gid;
              u_signed64     filesize;
              time_t         atime;              /* last access to file */
              time_t         mtime;              /* last file modification */
              time_t         ctime;              /* last metadata modification */
              short          fileclass;          /* 1--> experiment, 2 --> user */
              char      status;             /* '-' --> online, 'm' --> migrated */
              char      csumtype[3];
              char      csumvalue[33];

       filemode is constructed  by  OR'ing  the  bits  defined  in  <sys/stat.h>  under  Unix  or
       "statbits.h" under Windows/NT:

              S_IFLNK   0xA000          symbolic link
              S_IFREG   0x8000          regular file
              S_IFDIR   0x4000          directory
              S_ISUID   0004000         set user ID on execution
              S_ISGID   0002000         set group ID on execution
              S_ISVTX   0001000         sticky bit
              S_IRUSR   0000400         read by owner
              S_IWUSR   0000200         write by owner
              S_IXUSR   0000100         execute/search by owner
              S_IRGRP   0000040         read by group
              S_IWGRP   0000020         write by group
              S_IXGRP   0000010         execute/search by group
              S_IROTH   0000004         read by others
              S_IWOTH   0000002         write by others
              S_IXOTH   0000001         execute/search by others


       This  routine  returns 0 if the operation was successful or -1 if the operation failed. In
       the latter case, serrno is set appropriately.


       ENOENT       The named file/directory does not exist or is a null pathname.

       EACCES       Search permission is denied on a component of the path prefix.

       EFAULT       path or statbuf is a NULL pointer.

       EINVAL       The length of the guid component exceeds CA_MAXGUIDLEN or path and  guid  are
                    both given and they point at a different file.

       ENOTDIR      A component of path prefix is not a directory.

       ENAMETOOLONG The  length  of  path exceeds CA_MAXPATHLEN or the length of a path component
                    exceeds CA_MAXNAMELEN or the length of the sfn exceeds CA_MAXSFNLEN.

       SENOSHOST    Host unknown.

       SENOSSERV    Service unknown.

       SECOMERR     Communication error.

       ENSNACT      Name server is not running or is being shutdown.


       Castor_limits(4), lfc_chdir(3), lfc_chmod(3), lfc_chown(3), lfc_creatg(3)


       LCG Grid Deployment Team