---
name: "archive_write_filter"
section: "3"
platform: "linux"
package: "libarchive"
version: "3.8.11-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/archive_write_filter"
---

# archive\_write\_filter(3)

functions enabling output filters

## NAME

**archive\_write\_add\_filter\_b64encode**, **archive\_write\_add\_filter\_by\_name**, **archive\_write\_add\_filter\_bzip2**, **archive\_write\_add\_filter\_compress**, **archive\_write\_add\_filter\_grzip**, **archive\_write\_add\_filter\_gzip**, **archive\_write\_add\_filter\_lrzip**, **archive\_write\_add\_filter\_lz4**, **archive\_write\_add\_filter\_lzip**, **archive\_write\_add\_filter\_lzma**, **archive\_write\_add\_filter\_lzop**, **archive\_write\_add\_filter\_none**, **archive\_write\_add\_filter\_program**, **archive\_write\_add\_filter\_uuencode**, **archive\_write\_add\_filter\_xz**, **archive\_write\_add\_filter\_zstd** – functions enabling output filters

## LIBRARY

Streaming Archive Library (libarchive, -larchive)

## SYNOPSIS

**#include \<archive.h\>**

*int*\

**archive\_write\_add\_filter\_b64encode**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_by\_name**(*struct archive \**, *const char \*name*);

*int*\

**archive\_write\_add\_filter\_bzip2**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_compress**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_grzip**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_gzip**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_lrzip**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_lz4**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_lzip**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_lzma**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_lzop**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_none**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_program**(*struct archive \**, *const char \* cmd*);

*int*\

**archive\_write\_add\_filter\_uuencode**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_xz**(*struct archive \**);

*int*\

**archive\_write\_add\_filter\_zstd**(*struct archive \**);

## DESCRIPTION

-

  **archive\_write\_add\_filter\_bzip2**(), **archive\_write\_add\_filter\_compress**(), **archive\_write\_add\_filter\_grzip**(), **archive\_write\_add\_filter\_gzip**(), **archive\_write\_add\_filter\_lrzip**(), **archive\_write\_add\_filter\_lz4**(), **archive\_write\_add\_filter\_lzip**(), **archive\_write\_add\_filter\_lzma**(), **archive\_write\_add\_filter\_lzop**(), **archive\_write\_add\_filter\_xz**(), **archive\_write\_add\_filter\_zstd**(), The resulting archive will be compressed as specified. Note that the compressed output is always properly blocked.

-

  **archive\_write\_add\_filter\_b64encode**(), **archive\_write\_add\_filter\_uuencode**(), The output will be encoded as specified. The encoded output is always properly blocked.

- **archive\_write\_add\_filter\_by\_name**()

  Sets the corresponding filter based on the common name.

- **archive\_write\_add\_filter\_none**()

  This is never necessary. It is provided only for backwards compatibility.

- **archive\_write\_add\_filter\_program**()

  The archive will be fed into the specified compression program. The output of that program is blocked and written to the client write callbacks.

## RETURN VALUES

These functions return **ARCHIVE\_OK** (or **ARCHIVE\_WARN** if an external program had to be executed to handle the filter) on success, or **ARCHIVE\_FATAL**.

## ERRORS

Detailed error codes and textual descriptions are available from the **archive\_errno**() and **archive\_error\_string**() functions.

## SEE ALSO

[tar(1)](/tar/1.md), [archive\_write(3)](/archive_write/3.md), [archive\_write\_format(3)](/archive_write_format/3.md), [archive\_write\_set\_options(3)](/archive_write_set_options/3.md), [libarchive(3)](/libarchive/3.md), [cpio(5)](/cpio/5.md), [mtree(5)](/mtree/5.md), [tar(5)](/tar/5.md)
