---
name: "lfc_delfilesbypattern"
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_delfilesbypattern"
---

# lfc\_delfilesbypattern(3)

delete the file entries selected by pattern matching on basename

## NAME

lfc\_delfilesbypattern - delete the file entries selected by pattern matching on basename

## SYNOPSIS

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

**int lfc\_delfilesbypattern (const char \****path***,** **const char \****pattern***,** **int** *force***,** **int \****nbstatuses***,** **struct lfc\_filestatus \*\****statuses***)**

## DESCRIPTION

**lfc\_delfilesbypattern** deletes the file entries selected by pattern matching on basename. If replicas exist and the force argument is not zero, all replicas are first removed.

- *path*

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

- *pattern*

  allows to restrict the list of files to be deleted to entries having the basename starting with this pattern. *pattern* should be terminated by a %.

- *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 lfc\_filestatus structures allocated by the API. The client application is responsible for freeing the array when not needed anymore.

```
struct lfc_filestatus {
	char		name[CA_MAXNAMELEN+1];
	int		errcode;
};
```

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

- **EACCES**

  Search permission is denied on a component of the *path* prefix 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**

  *path*, *pattern*, *nbstatuses* or *statuses* is a NULL pointer.

- **EEXIST**

  File has replicas and *force* is zero.

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

- **EINVAL**

  The length of *pattern* exceeds **CA\_MAXNAMELEN**.

- **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)**, **[lfc\_delreplica(3)](/lfc_delreplica/3.md)**, **[lfc\_unlink(3)](/lfc_unlink/3.md)**

## AUTHOR

**LCG Grid Deployment** Team
