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

# lfc\_getreplica(3)

get the replica entries associated with a LFC file in the name server

## NAME

lfc\_getreplica - get the replica entries associated with a LFC file in the name server

## SYNOPSIS

**#include \<sys/types.h\>**\
 **#include "lfc\_api.h"**

**int lfc\_getreplica (const char \****path***,** **const char \****guid***,** **const char \****se***,** **int \****nbentries***,** **struct lfc\_filereplica \*\****rep\_entries***)**

## DESCRIPTION

**lfc\_getreplica** gets the replica entries associated with a LFC file in the name server.

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

- *path*

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

- *guid*

  specifies the Grid Unique IDentifier.

- *se*

  allows to restrict the replica entries to a given SE.

- *nbentries*

  will be set to the number of entries in the array of replicas.

- *rep\_entries*

  will be set to the address of an array of lfc\_filereplica structures allocated by the API. The client application is responsible for freeing the array when not needed anymore.

```
struct lfc_filereplica {
	u_signed64	fileid;
	u_signed64	nbaccesses;
	time_t		atime;		/* last access to replica */
	time_t		ptime;		/* replica pin time */
	char		status;
	char		f_type;		/* 'V' for Volatile, 'P' for Permanent */
	char		poolname[CA_MAXPOOLNAMELEN+1];
	char		host[CA_MAXHOSTNAMELEN+1];
	char		fs[80];
	char		sfn[CA_MAXSFNLEN+1];
};
```

## 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 does not exist.

- **EACCES**

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

- **ENOMEM**

  Memory could not be allocated for unmarshalling the reply.

- **EFAULT**

  *path* and *guid* are NULL pointers or *nbentries* or *rep\_entries* is a NULL pointer.

- **ENOTDIR**

  A component of *path* prefix is not a directory.

- **EINVAL**

  The length of *guid* exceeds **CA\_MAXGUIDLEN** or the length of *se* exceeds **CA\_MAXHOSTNAMELEN** or path and guid are both given and they point at a different file.

- **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)](/Castor_limits/4.md)**, **[lfc\_chdir(3)](/lfc_chdir/3.md)**

## AUTHOR

**LCG Grid Deployment** Team
