---
name: "dpns_delreplicasbysfn"
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_delreplicasbysfn"
---

# dpns\_delreplicasbysfn(3)

delete entries associated with a list of sfns and corresponding lfn if last replica

## NAME

dpns\_delreplicasbysfn - delete entries associated with a list of sfns and corresponding lfn if last replica

## SYNOPSIS

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

**int dpns\_delreplicasbysfn (int** *nbfiles***,** **const char \*\****sfns***,** **const char \*\****guids***,** **int \****nbstatuses***,** **int \*\****statuses***)**

## DESCRIPTION

**dpns\_delreplicasbysfn** deletes entries associated with a list of sfns and corresponding lfn if last replica. An extra check may be obtained by specifying a list of *guids*.

- *nbfiles*

  specifies the number of file names in the array *sfns*.

- *sfns*

  specifies either the Site URLs or the Physical File Names for the list of replicas.

- *guids*

  specifies the list of Grid Unique IDentifiers (optional). Can be NULL.

- *nbstatuses*

  will be set to the number of replies in the array of statuses.

- *statuses*

  will be set to the address of an array of integer statuses allocated by the API. The client application is responsible for freeing the array when not needed anymore. Individual statuses are 0 if the operation was successful or set to the serrno value in case of error.

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

- **E2BIG**

  Request too large (max 1 MB).

- **ENOMEM**

  Memory could not be allocated for marshalling the request or unmarshalling the reply.

- **EACCES**

  Search permission is denied on a component of the parent directory or write permission is denied on the parent directory or the parent has the sticky bit S\_ISVTX set and

  the effective user ID of the requestor does not match the owner ID of the file and

  the effective user ID of the requestor does not match the owner ID of the directory and

  the file is not writable by the requestor and

  the requestor does not have ADMIN privilege in the Cupv database.

- **ENOMEM**

  Memory could not be allocated for marshalling the request or unmarshalling the reply.

- **EFAULT**

  *sfns*, *nbstatuses* or *statuses* is a NULL pointer.

- **EINVAL**

  *nbfiles* is not strictly positive or the length of one of the *guids* exceeds **CA\_MAXGUIDLEN**.

- **ENAMETOOLONG**

  The length of *sfn* exceeds **CA\_MAXSFNLEN**.

- **SENOSSERV**

  Service unknown.

- **SEINTERNAL**

  Database error.

- **SECOMERR**

  Communication error.

- **ENSNACT**

  Name server is not running or is being shutdown.

## SEE ALSO

**[Castor\_limits(4)](/Castor_limits/4.md)**, **[dpns\_delreplica(3)](/dpns_delreplica/3.md)**, **[dpns\_unlink(3)](/dpns_unlink/3.md)**

## AUTHOR

**LCG Grid Deployment** Team
