NAME
dpns_stat - get information about a DPNS file or directory in the name
server
SYNOPSIS
#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)
DESCRIPTION
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.
path 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
RETURN VALUE
This routine returns 0 if the operation was successful or -1 if the
operation failed. In the latter case, serrno is set appropriately.
ERRORS
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.
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.
SENOSHOST Host unknown.
SENOSSERV Service unknown.
SECOMERR Communication error.
ENSNACT Name server is not running or is being shutdown.
SEE ALSO
Castor_limits(4), dpns_chdir(3), dpns_chmod(3), dpns_chown(3),
dpns_creat(3)
AUTHOR
LCG Grid Deployment Team