dpns_stat(3) get information about a DPNS file or directory in the name server


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

int dpns_lstat (const char *path, struct dpns_filestat *statbuf)

int dpns_stat (const char *path, struct dpns_filestat *statbuf)

int dpns_statx (const char *path, struct dpns_fileid *file_uniqueid, struct dpns_filestat *statbuf)


dpns_stat gets information about a DPNS file or directory in the name server.

dpns_lstat is identical to dpns_stat except for symbolic links. dpns_lstat retrieves information about the link itself, while dpns_stat gets information about the file/directory referenced by the symbolic link.

dpns_statx returns the same information plus the file unique id (name server hostname and file id). The file can be specified by path name or by file_uniqueid. If both are given, file_uniqueid is used.

specifies the logical pathname relative to the current DPNS directory or the full DPNS pathname.

The structure pointed to by statbuf contains the following members:

u_signed64     fileid;         /* entry unique identifier */

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 */

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.


The named file/directory does not exist or is a null pathname.
Search permission is denied on a component of the path prefix.
path or statbuf is a NULL pointer.
A component of path prefix is not a directory.
The length of path exceeds CA_MAXPATHLEN or the length of a path component exceeds CA_MAXNAMELEN.
Host unknown.
Service unknown.
Communication error.
Name server is not running or is being shutdown.


LCG Grid Deployment Team