---
name: "lfc_getlinks"
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_getlinks"
---

# lfc\_getlinks(3)

get the link entries associated with a given file

## NAME

lfc\_getlinks - get the link entries associated with a given file

## SYNOPSIS

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

**int lfc\_getlinks (const char \****path***,** **const char \****guid***,** **int \****nbentries***,** **struct lfc\_linkinfo \*\****linkinfos***)**

## DESCRIPTION

**lfc\_getlinks** gets the link entries associated with a given file. The first entry in the list is the actual file name, while the other entries are the symbolic links pointing at this file.

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.

- *nbentries*

  will be set to the number of entries in the array of link infos.

- *link\_entries*

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

```
struct lfc_linkinfo {
	char		path[CA_MAXPATHLEN+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 *linkinfos* is a NULL pointer.

- **ENOTDIR**

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

- **EINVAL**

  The length of *guid* exceeds **CA\_MAXGUIDLEN** 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
