---
name: "dpns_statg"
section: "3"
platform: "linux"
package: "libdpm-dev"
version: "1.10.0-2+b3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/dpns_statg"
---

# dpns\_statg(3)

get information about a DPNS file or directory in the name server

## NAME

dpns\_statg - get information about a DPNS file or directory in the name server

## SYNOPSIS

**#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***)**

## DESCRIPTION

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

## 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.

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

## SEE ALSO

**[Castor\_limits(4)](/Castor_limits/4.md)**, **[dpns\_chdir(3)](/dpns_chdir/3.md)**, **[dpns\_chmod(3)](/dpns_chmod/3.md)**, **[dpns\_chown(3)](/dpns_chown/3.md)**, **[dpns\_creat(3)](/dpns_creat/3.md)**

## AUTHOR

**LCG Grid Deployment** Team
