---
name: "archive_write_format"
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_format"
---

# archive\_write\_format(3)

functions for creating archives

## NAME

**archive\_write\_set\_format**, **archive\_write\_set\_format\_7zip**, **archive\_write\_set\_format\_ar**, **archive\_write\_set\_format\_ar\_bsd**, **archive\_write\_set\_format\_ar\_svr4**, **archive\_write\_set\_format\_by\_name**, **archive\_write\_set\_format\_cpio**, **archive\_write\_set\_format\_cpio\_bin**, **archive\_write\_set\_format\_cpio\_newc**, **archive\_write\_set\_format\_cpio\_odc**, **archive\_write\_set\_format\_cpio\_pwb**, **archive\_write\_set\_format\_filter\_by\_ext**, **archive\_write\_set\_format\_filter\_by\_ext\_def**, **archive\_write\_set\_format\_gnutar**, **archive\_write\_set\_format\_iso9660**, **archive\_write\_set\_format\_mtree**, **archive\_write\_set\_format\_mtree\_classic**, **archive\_write\_set\_format\_mtree\_default**, **archive\_write\_set\_format\_pax**, **archive\_write\_set\_format\_pax\_restricted**, **archive\_write\_set\_format\_raw**, **archive\_write\_set\_format\_shar**, **archive\_write\_set\_format\_shar\_dump**, **archive\_write\_set\_format\_ustar**, **archive\_write\_set\_format\_v7tar**, **archive\_write\_set\_format\_warc**, **archive\_write\_set\_format\_xar**, **archive\_write\_set\_format\_zip** – functions for creating archives

## LIBRARY

Streaming Archive Library (libarchive, -larchive)

## SYNOPSIS

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

*int*\

**archive\_write\_set\_format**(*struct archive \**, *int code*);

*int*\

**archive\_write\_set\_format\_7zip**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_ar**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_ar\_bsd**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_ar\_svr4**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_by\_name**(*struct archive \**, *const char \*name*);

*int*\

**archive\_write\_set\_format\_cpio**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_cpio\_bin**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_cpio\_newc**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_cpio\_odc**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_cpio\_pwb**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_filter\_by\_ext**(*struct archive \**, *const char \*filename*);

*int*\

**archive\_write\_set\_format\_filter\_by\_ext\_def**(*struct archive \**, *const char \*filename*, *const char \*def\_ext*);

*int*\

**archive\_write\_set\_format\_gnutar**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_iso9660**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_mtree**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_pax**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_pax\_restricted**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_raw**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_shar**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_shar\_dump**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_ustar**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_v7tar**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_warc**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_xar**(*struct archive \**);

*int*\

**archive\_write\_set\_format\_zip**(*struct archive \**);

## DESCRIPTION

These functions set the format that will be used for the archive.

The library can write a variety of common archive formats.

- **archive\_write\_set\_format**()

  Sets the format based on the format code (see *archive.h* for the full list of format codes). In particular, this can be used in conjunction with **archive\_format**() to create a new archive with the same format as an existing archive.

- **archive\_write\_set\_format\_by\_name**()

  Sets the corresponding format based on the common name.

-

  **archive\_write\_set\_format\_filter\_by\_ext**() **archive\_write\_set\_format\_filter\_by\_ext\_def**() Sets both filters and format based on the output filename, optionally referring to a default extension if the supplied filename does not have a known one. Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz

-

  **archive\_write\_set\_format\_7zip**() **archive\_write\_set\_format\_ar\_bsd**() **archive\_write\_set\_format\_ar\_svr4**() **archive\_write\_set\_format\_cpio**() **archive\_write\_set\_format\_cpio\_bin**() **archive\_write\_set\_format\_cpio\_newc**() **archive\_write\_set\_format\_cpio\_odc**() **archive\_write\_set\_format\_cpio\_pwb**() **archive\_write\_set\_format\_gnutar**() **archive\_write\_set\_format\_iso9660**() **archive\_write\_set\_format\_mtree**() **archive\_write\_set\_format\_mtree\_classic**() **archive\_write\_set\_format\_pax**() **archive\_write\_set\_format\_pax\_restricted**() **archive\_write\_set\_format\_raw**() **archive\_write\_set\_format\_shar**() **archive\_write\_set\_format\_shar\_dump**() **archive\_write\_set\_format\_ustar**() **archive\_write\_set\_format\_v7tar**() **archive\_write\_set\_format\_warc**() **archive\_write\_set\_format\_xar**() **archive\_write\_set\_format\_zip**() Set the format as specified. More details on the formats supported by libarchive can be found in the [libarchive-formats(5)](/libarchive-formats/5.md) manual page.

## 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\_set\_options(3)](/archive_write_set_options/3.md), [libarchive(3)](/libarchive/3.md), [cpio(5)](/cpio/5.md), [libarchive-formats(5)](/libarchive-formats/5.md), [mtree(5)](/mtree/5.md), [tar(5)](/tar/5.md)
