summaryrefslogtreecommitdiff
path: root/archivers/libarchive/files/doc/wiki/ManPageArchiveReadFormat3.wiki
blob: 645300bf7512f6a09139b3cb3b77a663e28635b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
ARCHIVE_READ_FORMAT(3) manual page 
== NAME == 
'''archive_read_support_format_7zip''', 
'''archive_read_support_format_all''', 
'''archive_read_support_format_ar''', 
'''archive_read_support_format_by_code''', 
'''archive_read_support_format_cab''', 
'''archive_read_support_format_cpio''', 
'''archive_read_support_format_empty''', 
'''archive_read_support_format_iso9660''', 
'''archive_read_support_format_lha''', 
'''archive_read_support_format_mtree''', 
'''archive_read_support_format_rar''', 
'''archive_read_support_format_raw''', 
'''archive_read_support_format_tar''', 
'''archive_read_support_format_xar''', 
'''archive_read_support_format_zip''' 
- functions for reading streaming archives 
== LIBRARY == 
Streaming Archive Library (libarchive, -larchive) 
== SYNOPSIS == 
'''<nowiki>#include <archive.h></nowiki>''' 
<br> 
''int'' 
<br> 
'''archive_read_support_format_7zip'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_all'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_ar'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_by_code'''(''struct archive *'', ''int''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_cab'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_cpio'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_empty'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_iso9660'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_lha'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_mtree'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_rar'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_raw'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_tar'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_xar'''(''struct archive *''); 
<br> 
''int'' 
<br> 
'''archive_read_support_format_zip'''(''struct archive *''); 
== DESCRIPTION == 
<dl> 
<dt> 
'''archive_read_support_format_7zip'''(), 
'''archive_read_support_format_ar'''(), 
'''archive_read_support_format_cab'''(), 
'''archive_read_support_format_cpio'''(), 
'''archive_read_support_format_iso9660'''(), 
'''archive_read_support_format_lha'''(), 
'''archive_read_support_format_mtree'''(), 
'''archive_read_support_format_rar'''(), 
'''archive_read_support_format_raw'''(), 
'''archive_read_support_format_tar'''(), 
'''archive_read_support_format_xar'''(), 
'''archive_read_support_format_zip'''() 
</dt> <dd> 
Enables support---including auto-detection code---for the 
specified archive format. 
For example, 
'''archive_read_support_format_tar'''() 
enables support for a variety of standard tar formats, old-style tar, 
ustar, pax interchange format, and many common variants. 
</dd><dt>'''archive_read_support_format_all'''()</dt><dd> 
Enables support for all available formats except the 
"raw" 
format (see below). 
</dd><dt>'''archive_read_support_format_by_code'''()</dt><dd> 
Enables a single format specified by the format code. 
This can be useful when reading a single archive twice; 
use 
'''archive_format'''() 
after reading the first time and pass the resulting code 
to this function to selectively enable only the necessary 
format support. 
Note:  In statically-linked executables, this will cause 
your program to include support for every format. 
If executable size is a concern, you may wish to avoid 
using this function. 
</dd><dt>'''archive_read_support_format_empty'''()</dt><dd> 
Enables support for treating empty files as empty archives. 
Because empty files are valid for several different formats, 
it is not possible to accurately determine a format for 
an empty file based purely on contents. 
So empty files are treated by libarchive as a distinct 
format. 
</dd><dt>'''archive_read_support_format_raw'''()</dt><dd> 
The 
"raw" 
format handler allows libarchive to be used to read arbitrary data. 
It treats any data stream as an archive with a single entry. 
The pathname of this entry is 
"data ;" 
all other entry fields are unset. 
This is not enabled by 
'''archive_read_support_format_all'''() 
in order to avoid erroneous handling of damaged archives. 
</dd></dl> 
== 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 == 
[[ManPageBsdtar1]], 
[[ManPageibarchive3]], 
[[ManPagerchiveeadata3]], 
[[ManPagerchiveeadilter3]], 
[[ManPagerchiveeadetptions3]], 
[[ManPagerchivetil3]], 
[[ManPageTar5]] 
== BUGS == 
Many traditional archiver programs treat 
empty files as valid empty archives. 
For example, many implementations of 
[[ManPageBsdtar1]] 
allow you to append entries to an empty file. 
Of course, it is impossible to determine the format of an empty file 
by inspecting the contents, so this library treats empty files as 
having a special 
"empty" 
format. 

Using the 
"raw" 
handler together with any other handler will often work 
but can produce surprising results.