---
name: "lfc_symlink"
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_symlink"
---

# lfc\_symlink(3)

make a symbolic link to a file or a directory in the LFC Name Server

## NAME

lfc\_symlink - make a symbolic link to a file or a directory in the LFC Name Server

## SYNOPSIS

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

**int lfc\_symlink (const char \****target***,** **const char \****linkname***)**

## DESCRIPTION

**lfc\_symlink** makes a symbolic link to a file or a directory in the LFC Name Server.

- *linkname*

  specifies the link name relative to the current LFC directory or the full LFC pathname.

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

  A component of *linkname* prefix does not exist.

- **EACCES**

  Search permission is denied on a component of *linkname* prefix or write permission on *linkname* parent directory is denied.

- **EFAULT**

  *target* or *linkname* is a NULL pointer.

- **EEXIST**

  *linkname* exists already.

- **ENOTDIR**

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

- **ENOSPC**

  The name server database is full.

- **ENAMETOOLONG**

  The length of *target* or *linkname* exceeds **CA\_MAXPATHLEN** or the length of a *linkname* component exceeds **CA\_MAXNAMELEN**.

- **SENOSHOST**

  Host unknown.

- **SENOSSERV**

  Service unknown.

- **SECOMERR**

  Communication error.

- **SELOOP**

  Too many symbolic links encountered when parsing *linkname*.

- **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)**, **[lfc\_chmod(3)](/lfc_chmod/3.md)**, **[lfc\_readlink(3)](/lfc_readlink/3.md)**, **[lfc\_statg(3)](/lfc_statg/3.md)**, **Cupvlist(1)**

## AUTHOR

**LCG Grid Deployment** Team
