2020-03-04 16:55:40 +01:00
|
|
|
ARCHIVE_READ_DATA(3) manual page
|
|
|
|
== NAME ==
|
|
|
|
'''archive_read_data''',
|
|
|
|
'''archive_read_data_block''',
|
|
|
|
'''archive_read_data_skip''',
|
|
|
|
'''archive_read_data_into_fd'''
|
|
|
|
- functions for reading streaming archives
|
|
|
|
== LIBRARY ==
|
|
|
|
Streaming Archive Library (libarchive, -larchive)
|
|
|
|
== SYNOPSIS ==
|
|
|
|
'''<nowiki>#include <archive.h></nowiki>'''
|
|
|
|
<br>
|
|
|
|
''la_ssize_t''
|
|
|
|
<br>
|
|
|
|
'''archive_read_data'''(''struct archive *'', ''void *buff'', ''size_t len'');
|
|
|
|
<br>
|
|
|
|
''int''
|
|
|
|
<br>
|
|
|
|
'''archive_read_data_block'''(''struct archive *'', ''const void **buff'', ''size_t *len'', ''off_t *offset'');
|
|
|
|
<br>
|
|
|
|
''int''
|
|
|
|
<br>
|
|
|
|
'''archive_read_data_skip'''(''struct archive *'');
|
|
|
|
<br>
|
|
|
|
''int''
|
|
|
|
<br>
|
|
|
|
'''archive_read_data_into_fd'''(''struct archive *'', ''int fd'');
|
|
|
|
== DESCRIPTION ==
|
|
|
|
<dl>
|
|
|
|
<dt>'''archive_read_data'''()</dt><dd>
|
|
|
|
Read data associated with the header just read.
|
|
|
|
Internally, this is a convenience function that calls
|
|
|
|
'''archive_read_data_block'''()
|
|
|
|
and fills any gaps with nulls so that callers see a single
|
|
|
|
continuous stream of data.
|
|
|
|
</dd><dt>'''archive_read_data_block'''()</dt><dd>
|
|
|
|
Return the next available block of data for this entry.
|
|
|
|
Unlike
|
|
|
|
'''archive_read_data'''(),
|
|
|
|
the
|
|
|
|
'''archive_read_data_block'''()
|
|
|
|
function avoids copying data and allows you to correctly handle
|
|
|
|
sparse files, as supported by some archive formats.
|
|
|
|
The library guarantees that offsets will increase and that blocks
|
|
|
|
will not overlap.
|
|
|
|
Note that the blocks returned from this function can be much larger
|
|
|
|
than the block size read from disk, due to compression
|
|
|
|
and internal buffer optimizations.
|
|
|
|
</dd><dt>'''archive_read_data_skip'''()</dt><dd>
|
|
|
|
A convenience function that repeatedly calls
|
|
|
|
'''archive_read_data_block'''()
|
|
|
|
to skip all of the data for this archive entry.
|
|
|
|
Note that this function is invoked automatically by
|
|
|
|
'''archive_read_next_header2'''()
|
|
|
|
if the previous entry was not completely consumed.
|
|
|
|
</dd><dt>'''archive_read_data_into_fd'''()</dt><dd>
|
|
|
|
A convenience function that repeatedly calls
|
|
|
|
'''archive_read_data_block'''()
|
|
|
|
to copy the entire entry to the provided file descriptor.
|
|
|
|
</dd></dl>
|
|
|
|
== RETURN VALUES ==
|
|
|
|
Most functions return zero on success, non-zero on error.
|
|
|
|
The possible return codes include:
|
|
|
|
'''ARCHIVE_OK'''
|
|
|
|
(the operation succeeded),
|
|
|
|
'''ARCHIVE_WARN'''
|
|
|
|
(the operation succeeded but a non-critical error was encountered),
|
|
|
|
'''ARCHIVE_EOF'''
|
|
|
|
(end-of-archive was encountered),
|
|
|
|
'''ARCHIVE_RETRY'''
|
|
|
|
(the operation failed but can be retried),
|
|
|
|
and
|
|
|
|
'''ARCHIVE_FATAL'''
|
|
|
|
(there was a fatal error; the archive should be closed immediately).
|
|
|
|
|
|
|
|
'''archive_read_data'''()
|
|
|
|
returns a count of bytes actually read or zero at the end of the entry.
|
|
|
|
On error, a value of
|
|
|
|
'''ARCHIVE_FATAL''',
|
|
|
|
'''ARCHIVE_WARN''',
|
|
|
|
or
|
|
|
|
'''ARCHIVE_RETRY'''
|
|
|
|
is returned.
|
|
|
|
== ERRORS ==
|
|
|
|
Detailed error codes and textual descriptions are available from the
|
|
|
|
'''archive_errno'''()
|
|
|
|
and
|
|
|
|
'''archive_error_string'''()
|
|
|
|
functions.
|
|
|
|
== SEE ALSO ==
|
|
|
|
[[ManPageBsdtar1]],
|
2021-12-09 12:22:14 +01:00
|
|
|
[[ManPageArchiveRead3]],
|
|
|
|
[[ManPageArchiveReadExtract3]],
|
|
|
|
[[ManPageArchiveReadFilter3]],
|
|
|
|
[[ManPageArchiveReadFormat3]],
|
|
|
|
[[ManPageArchiveReadHeader3]],
|
|
|
|
[[ManPageArchiveReadOpen3]],
|
|
|
|
[[ManPageArchiveReadSetOptions3]],
|
|
|
|
[[ManPageArchiveUtil3]],
|
|
|
|
[[ManPageLibarchive3]],
|
2020-03-04 16:55:40 +01:00
|
|
|
[[ManPageTar5]]
|