1.\" Copyright (c) 2003-2011 Tim Kientzle
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD$
26.\"
27.Dd February 14, 2013
28.Dt ARCHIVE_WRITE_FORMAT 3
29.Os
30.Sh NAME
31.Nm archive_write_set_format ,
32.Nm archive_write_set_format_7zip ,
33.Nm archive_write_set_format_ar ,
34.Nm archive_write_set_format_ar_bsd ,
35.Nm archive_write_set_format_ar_svr4 ,
36.Nm archive_write_set_format_by_name ,
37.Nm archive_write_set_format_cpio ,
38.Nm archive_write_set_format_cpio_bin ,
39.Nm archive_write_set_format_cpio_newc ,
40.Nm archive_write_set_format_cpio_odc ,
41.Nm archive_write_set_format_cpio_pwb ,
42.Nm archive_write_set_format_filter_by_ext ,
43.Nm archive_write_set_format_filter_by_ext_def ,
44.Nm archive_write_set_format_gnutar ,
45.Nm archive_write_set_format_iso9660 ,
46.Nm archive_write_set_format_mtree ,
47.Nm archive_write_set_format_mtree_classic ,
48.Nm archive_write_set_format_mtree_default ,
49.Nm archive_write_set_format_pax ,
50.Nm archive_write_set_format_pax_restricted ,
51.Nm archive_write_set_format_raw ,
52.Nm archive_write_set_format_shar ,
53.Nm archive_write_set_format_shar_dump ,
54.Nm archive_write_set_format_ustar ,
55.Nm archive_write_set_format_v7tar ,
56.Nm archive_write_set_format_warc ,
57.Nm archive_write_set_format_xar ,
58.Nm archive_write_set_format_zip
59.Nd functions for creating archives
60.Sh LIBRARY
61Streaming Archive Library (libarchive, -larchive)
62.Sh SYNOPSIS
63.In archive.h
64.Ft int
65.Fn archive_write_set_format "struct archive *" "int code"
66.Ft int
67.Fn archive_write_set_format_7zip "struct archive *"
68.Ft int
69.Fn archive_write_set_format_ar "struct archive *"
70.Ft int
71.Fn archive_write_set_format_ar_bsd "struct archive *"
72.Ft int
73.Fn archive_write_set_format_ar_svr4 "struct archive *"
74.Ft int
75.Fn archive_write_set_format_by_name "struct archive *" "const char *name"
76.Ft int
77.Fn archive_write_set_format_cpio "struct archive *"
78.Ft int
79.Fn archive_write_set_format_cpio_bin "struct archive *"
80.Ft int
81.Fn archive_write_set_format_cpio_newc "struct archive *"
82.Ft int
83.Fn archive_write_set_format_cpio_odc "struct archive *"
84.Ft int
85.Fn archive_write_set_format_cpio_pwb "struct archive *"
86.Ft int
87.Fn archive_write_set_format_filter_by_ext "struct archive *" "const char *filename"
88.Ft int
89.Fn archive_write_set_format_filter_by_ext_def "struct archive *" "const char *filename" "const char *def_ext"
90.Ft int
91.Fn archive_write_set_format_gnutar "struct archive *"
92.Ft int
93.Fn archive_write_set_format_iso9660 "struct archive *"
94.Ft int
95.Fn archive_write_set_format_mtree "struct archive *"
96.Ft int
97.Fn archive_write_set_format_pax "struct archive *"
98.Ft int
99.Fn archive_write_set_format_pax_restricted "struct archive *"
100.Ft int
101.Fn archive_write_set_format_raw "struct archive *"
102.Ft int
103.Fn archive_write_set_format_shar "struct archive *"
104.Ft int
105.Fn archive_write_set_format_shar_dump "struct archive *"
106.Ft int
107.Fn archive_write_set_format_ustar "struct archive *"
108.Ft int
109.Fn archive_write_set_format_v7tar "struct archive *"
110.Ft int
111.Fn archive_write_set_format_warc "struct archive *"
112.Ft int
113.Fn archive_write_set_format_xar "struct archive *"
114.Ft int
115.Fn archive_write_set_format_zip "struct archive *"
116.Sh DESCRIPTION
117These functions set the format that will be used for the archive.
118.Pp
119The library can write a variety of common archive formats.
120.Bl -tag -width indent
121.It Fn archive_write_set_format
122Sets the format based on the format code (see
123.Pa archive.h
124for the full list of format codes).
125In particular, this can be used in conjunction with
126.Fn archive_format
127to create a new archive with the same format as an existing archive.
128.It Fn archive_write_set_format_by_name
129Sets the corresponding format based on the common name.
130.It Xo
131.Fn archive_write_set_format_filter_by_ext
132.Fn archive_write_set_format_filter_by_ext_def
133.Xc
134Sets both filters and format based on the output filename.
135Supported extensions: .7z, .zip, .jar, .cpio, .iso, .a, .ar, .tar, .tgz, .tar.gz, .tar.bz2, .tar.xz
136.It Xo
137.Fn archive_write_set_format_7zip
138.Fn archive_write_set_format_ar_bsd
139.Fn archive_write_set_format_ar_svr4
140.Fn archive_write_set_format_cpio
141.Fn archive_write_set_format_cpio_bin
142.Fn archive_write_set_format_cpio_newc
143.Fn archive_write_set_format_cpio_odc
144.Fn archive_write_set_format_cpio_pwb
145.Fn archive_write_set_format_gnutar
146.Fn archive_write_set_format_iso9660
147.Fn archive_write_set_format_mtree
148.Fn archive_write_set_format_mtree_classic
149.Fn archive_write_set_format_pax
150.Fn archive_write_set_format_pax_restricted
151.Fn archive_write_set_format_raw
152.Fn archive_write_set_format_shar
153.Fn archive_write_set_format_shar_dump
154.Fn archive_write_set_format_ustar
155.Fn archive_write_set_format_v7tar
156.Fn archive_write_set_format_warc
157.Fn archive_write_set_format_xar
158.Fn archive_write_set_format_zip
159.Xc
160Set the format as specified.
161More details on the formats supported by libarchive can be found in the
162.Xr libarchive-formats 5
163manual page.
164.El
165.\"
166.Sh RETURN VALUES
167These functions return
168.Cm ARCHIVE_OK
169on success, or
170.Cm ARCHIVE_FATAL .
171.\"
172.Sh ERRORS
173Detailed error codes and textual descriptions are available from the
174.Fn archive_errno
175and
176.Fn archive_error_string
177functions.
178.\"
179.Sh SEE ALSO
180.Xr tar 1 ,
181.Xr archive_write 3 ,
182.Xr archive_write_set_options 3 ,
183.Xr libarchive 3 ,
184.Xr cpio 5 ,
185.Xr libarchive-formats 5 ,
186.Xr mtree 5 ,
187.Xr tar 5
188