Blame doc/html/archive_read_open.3.html

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348
"http://www.w3.org/TR/html4/loose.dtd">
Packit Service 1d0348
<html>
Packit Service 1d0348
<head>
Packit Service 1d0348
<meta name="generator" content="groff -Thtml, see www.gnu.org">
Packit Service 1d0348
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
Packit Service 1d0348
<meta name="Content-Style" content="text/css">
Packit Service 1d0348
<style type="text/css">
Packit Service 1d0348
       p       { margin-top: 0; margin-bottom: 0; vertical-align: top }
Packit Service 1d0348
       pre     { margin-top: 0; margin-bottom: 0; vertical-align: top }
Packit Service 1d0348
       table   { margin-top: 0; margin-bottom: 0; vertical-align: top }
Packit Service 1d0348
       h1      { text-align: center }
Packit Service 1d0348
</style>
Packit Service 1d0348
<title></title>
Packit Service 1d0348
</head>
Packit Service 1d0348
<body>
Packit Service 1d0348
Packit Service 1d0348

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

ARCHIVE_READ_OPEN(3) BSD Library Functions Manual

Packit Service 1d0348
ARCHIVE_READ_OPEN(3)

Packit Service 1d0348
Packit Service 1d0348

NAME

Packit Service 1d0348
Packit Service 1d0348

archive_read_open,

Packit Service 1d0348
archive_read_open2, archive_read_open_fd,
Packit Service 1d0348
archive_read_open_FILE,
Packit Service 1d0348
archive_read_open_filename,
Packit Service 1d0348
archive_read_open_memory — functions for
Packit Service 1d0348
reading streaming archives

Packit Service 1d0348
Packit Service 1d0348

LIBRARY

Packit Service 1d0348
Packit Service 1d0348

Streaming Archive Library

Packit Service 1d0348
(libarchive, -larchive)

Packit Service 1d0348
Packit Service 1d0348

SYNOPSIS

Packit Service 1d0348
Packit Service 1d0348

#include

Packit Service 1d0348
<archive.h>

Packit Service 1d0348
Packit Service 1d0348

int

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_open(struct archive *,

Packit Service 1d0348
void *client_data,
Packit Service 1d0348
archive_open_callback *,
Packit Service 1d0348
archive_read_callback *,
Packit Service 1d0348
archive_close_callback *);

Packit Service 1d0348
Packit Service 1d0348

int

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_open2(struct archive *,

Packit Service 1d0348
void *client_data,
Packit Service 1d0348
archive_open_callback *,
Packit Service 1d0348
archive_read_callback *,
Packit Service 1d0348
archive_skip_callback *,
Packit Service 1d0348
archive_close_callback *);

Packit Service 1d0348
Packit Service 1d0348

int

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_open_FILE(struct archive *,

Packit Service 1d0348
FILE *file);

Packit Service 1d0348
Packit Service 1d0348

int

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_open_fd(struct archive *,

Packit Service 1d0348
int fd, size_t block_size);

Packit Service 1d0348
Packit Service 1d0348

int

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_open_filename(struct archive *,

Packit Service 1d0348
const char *filename,
Packit Service 1d0348
size_t block_size);

Packit Service 1d0348
Packit Service 1d0348

int

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_open_memory(struct archive *,

Packit Service 1d0348
const void *buff,
Packit Service 1d0348
size_t size);

Packit Service 1d0348
Packit Service 1d0348

DESCRIPTION

Packit Service 1d0348
archive_read_open()

Packit Service 1d0348
Packit Service 1d0348

The same as

Packit Service 1d0348
archive_read_open2(), except that the skip callback
Packit Service 1d0348
is assumed to be NULL.

Packit Service 1d0348
Packit Service 1d0348

archive_read_open2()

Packit Service 1d0348
Packit Service 1d0348

Freeze the settings, open the

Packit Service 1d0348
archive, and prepare for reading entries. This is the most
Packit Service 1d0348
generic version of this call, which accepts four callback
Packit Service 1d0348
functions. Most clients will want to use
Packit Service 1d0348
archive_read_open_filename(),
Packit Service 1d0348
archive_read_open_FILE(),
Packit Service 1d0348
archive_read_open_fd(), or
Packit Service 1d0348
archive_read_open_memory() instead. The library
Packit Service 1d0348
invokes the client-provided functions to obtain raw bytes
Packit Service 1d0348
from the archive.

Packit Service 1d0348
Packit Service 1d0348

archive_read_open_FILE()

Packit Service 1d0348
Packit Service 1d0348

Like

Packit Service 1d0348
archive_read_open(), except that it accepts a FILE
Packit Service 1d0348
* pointer. This function should not be used with tape
Packit Service 1d0348
drives or other devices that require strict I/O
Packit Service 1d0348
blocking.

Packit Service 1d0348
Packit Service 1d0348

archive_read_open_fd()

Packit Service 1d0348
Packit Service 1d0348

Like

Packit Service 1d0348
archive_read_open(), except that it accepts a file
Packit Service 1d0348
descriptor and block size rather than a set of function
Packit Service 1d0348
pointers. Note that the file descriptor will not be
Packit Service 1d0348
automatically closed at end-of-archive. This function is
Packit Service 1d0348
safe for use with tape drives or other blocked devices.

Packit Service 1d0348
Packit Service 1d0348

archive_read_open_file()

Packit Service 1d0348
Packit Service 1d0348

This is a deprecated synonym

Packit Service 1d0348
for archive_read_open_filename().

Packit Service 1d0348
Packit Service 1d0348

archive_read_open_filename()

Packit Service 1d0348
Packit Service 1d0348

Like

Packit Service 1d0348
archive_read_open(), except that it accepts a simple
Packit Service 1d0348
filename and a block size. A NULL filename represents
Packit Service 1d0348
standard input. This function is safe for use with tape
Packit Service 1d0348
drives or other blocked devices.

Packit Service 1d0348
Packit Service 1d0348

archive_read_open_memory()

Packit Service 1d0348
Packit Service 1d0348

Like

Packit Service 1d0348
archive_read_open(), except that it accepts a pointer
Packit Service 1d0348
and size of a block of memory containing the archive
Packit Service 1d0348
data.

Packit Service 1d0348
Packit Service 1d0348

A complete

Packit Service 1d0348
description of the struct archive and struct archive_entry
Packit Service 1d0348
objects can be found in the overview manual page for
Packit Service 1d0348
libarchive(3).

Packit Service 1d0348
Packit Service 1d0348

CLIENT CALLBACKS

Packit Service 1d0348
Packit Service 1d0348

The callback functions must

Packit Service 1d0348
match the following prototypes:

Packit Service 1d0348
Packit Service 1d0348

typedef

Packit Service 1d0348
la_ssize_t

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_read_callback(struct archive *,

Packit Service 1d0348
void *client_data,
Packit Service 1d0348
const void **buffer)

Packit Service 1d0348
Packit Service 1d0348

typedef

Packit Service 1d0348
la_int64_t

Packit Service 1d0348
Packit Service 1d0348
Packit Service 1d0348

archive_skip_callback(struct archive *,

Packit Service 1d0348
void *client_data,
Packit Service 1d0348
off_t request)

Packit Service 1d0348
Packit Service 1d0348

typedef

Packit Service 1d0348
int archive_open_callback(struct archive
Packit Service 1d0348
*, void *client_data)

Packit Service 1d0348
Packit Service 1d0348

typedef

Packit Service 1d0348
int archive_close_callback(struct archive
Packit Service 1d0348
*, void *client_data)

Packit Service 1d0348
Packit Service 1d0348

The open

Packit Service 1d0348
callback is invoked by archive_open(). It should
Packit Service 1d0348
return ARCHIVE_OK if the underlying file or data
Packit Service 1d0348
source is successfully opened. If the open fails, it should
Packit Service 1d0348
call archive_set_error() to register an error code
Packit Service 1d0348
and message and return ARCHIVE_FATAL.

Packit Service 1d0348
Packit Service 1d0348

The read

Packit Service 1d0348
callback is invoked whenever the library requires raw bytes
Packit Service 1d0348
from the archive. The read callback should read data into a
Packit Service 1d0348
buffer, set the const void **buffer argument to point to the
Packit Service 1d0348
available data, and return a count of the number of bytes
Packit Service 1d0348
available. The library will invoke the read callback again
Packit Service 1d0348
only after it has consumed this data. The library imposes no
Packit Service 1d0348
constraints on the size of the data blocks returned. On
Packit Service 1d0348
end-of-file, the read callback should return zero. On error,
Packit Service 1d0348
the read callback should invoke archive_set_error()
Packit Service 1d0348
to register an error code and message and return -1.

Packit Service 1d0348
Packit Service 1d0348

The skip

Packit Service 1d0348
callback is invoked when the library wants to ignore a block
Packit Service 1d0348
of data. The return value is the number of bytes actually
Packit Service 1d0348
skipped, which may differ from the request. If the callback
Packit Service 1d0348
cannot skip data, it should return zero. If the skip
Packit Service 1d0348
callback is not provided (the function pointer is NULL ),
Packit Service 1d0348
the library will invoke the read function instead and simply
Packit Service 1d0348
discard the result. A skip callback can provide significant
Packit Service 1d0348
performance gains when reading uncompressed archives from
Packit Service 1d0348
slow disk drives or other media that can skip quickly.

Packit Service 1d0348
Packit Service 1d0348

The close

Packit Service 1d0348
callback is invoked by archive_close when the archive
Packit Service 1d0348
processing is complete. The callback should return
Packit Service 1d0348
ARCHIVE_OK on success. On failure, the callback
Packit Service 1d0348
should invoke archive_set_error() to register an
Packit Service 1d0348
error code and message and return ARCHIVE_FATAL.

Packit Service 1d0348
Packit Service 1d0348

RETURN VALUES

Packit Service 1d0348
Packit Service 1d0348

These functions return

Packit Service 1d0348
ARCHIVE_OK on success, or ARCHIVE_FATAL.

Packit Service 1d0348
Packit Service 1d0348

ERRORS

Packit Service 1d0348
Packit Service 1d0348

Detailed error codes and textual

Packit Service 1d0348
descriptions are available from the archive_errno()
Packit Service 1d0348
and archive_error_string() functions.

Packit Service 1d0348
Packit Service 1d0348

SEE ALSO

Packit Service 1d0348
Packit Service 1d0348

tar(1), libarchive(3),

Packit Service 1d0348
archive_read(3), archive_read_data(3),
Packit Service 1d0348
archive_read_filter(3), archive_read_format(3),
Packit Service 1d0348
archive_read_set_options(3), archive_util(3), tar(5)

Packit Service 1d0348
Packit Service 1d0348

BSD

Packit Service 1d0348
February 2, 2012 BSD

Packit Service 1d0348

Packit Service 1d0348
</body>
Packit Service 1d0348
</html>