Man Linux: Main Page and Category List


       dpns_statg - get information about a DPNS file or directory in the name


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

       int  dpns_statg  (const  char   *path,   const   char   *guid,   struct
       dpns_filestatg *statbuf)

       int dpns_statr (const char *sfn, struct dpns_filestatg *statbuf)


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

       dpns_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 DPNS
              directory or the full DPNS pathname.

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

       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

       EACCES       Search  permission  is  denied  on a component of the path

       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

       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),    dpns_chdir(3),    dpns_chmod(3),    dpns_chown(3),


       LCG Grid Deployment Team