---
name: "archive_write_filter"
section: "3"
platform: "macos"
package: "libarchive"
version: "167.120.3"
release: "macOS 26.5"
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\_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\_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** 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)
