Blame doc/html/archive_read_open.3.html

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

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

ARCHIVE_READ_OPEN(3) BSD Library Functions Manual

Packit 08bd4c
ARCHIVE_READ_OPEN(3)

Packit 08bd4c
Packit 08bd4c

NAME

Packit 08bd4c
Packit 08bd4c

archive_read_open,

Packit 08bd4c
archive_read_open2, archive_read_open_fd,
Packit 08bd4c
archive_read_open_FILE,
Packit 08bd4c
archive_read_open_filename,
Packit 08bd4c
archive_read_open_memory — functions for
Packit 08bd4c
reading streaming archives

Packit 08bd4c
Packit 08bd4c

LIBRARY

Packit 08bd4c
Packit 08bd4c

Streaming Archive Library

Packit 08bd4c
(libarchive, -larchive)

Packit 08bd4c
Packit 08bd4c

SYNOPSIS

Packit 08bd4c
Packit 08bd4c

#include

Packit 08bd4c
<archive.h>

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_read_open(struct archive *,

Packit 08bd4c
void *client_data,
Packit 08bd4c
archive_open_callback *,
Packit 08bd4c
archive_read_callback *,
Packit 08bd4c
archive_close_callback *);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_read_open2(struct archive *,

Packit 08bd4c
void *client_data,
Packit 08bd4c
archive_open_callback *,
Packit 08bd4c
archive_read_callback *,
Packit 08bd4c
archive_skip_callback *,
Packit 08bd4c
archive_close_callback *);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_read_open_FILE(struct archive *,

Packit 08bd4c
FILE *file);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_read_open_fd(struct archive *,

Packit 08bd4c
int fd, size_t block_size);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_read_open_filename(struct archive *,

Packit 08bd4c
const char *filename,
Packit 08bd4c
size_t block_size);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_read_open_memory(struct archive *,

Packit 08bd4c
const void *buff,
Packit 08bd4c
size_t size);

Packit 08bd4c
Packit 08bd4c

DESCRIPTION

Packit 08bd4c
archive_read_open()

Packit 08bd4c
Packit 08bd4c

The same as

Packit 08bd4c
archive_read_open2(), except that the skip callback
Packit 08bd4c
is assumed to be NULL.

Packit 08bd4c
Packit 08bd4c

archive_read_open2()

Packit 08bd4c
Packit 08bd4c

Freeze the settings, open the

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

Packit 08bd4c
Packit 08bd4c

archive_read_open_FILE()

Packit 08bd4c
Packit 08bd4c

Like

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

Packit 08bd4c
Packit 08bd4c

archive_read_open_fd()

Packit 08bd4c
Packit 08bd4c

Like

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

Packit 08bd4c
Packit 08bd4c

archive_read_open_file()

Packit 08bd4c
Packit 08bd4c

This is a deprecated synonym

Packit 08bd4c
for archive_read_open_filename().

Packit 08bd4c
Packit 08bd4c

archive_read_open_filename()

Packit 08bd4c
Packit 08bd4c

Like

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

Packit 08bd4c
Packit 08bd4c

archive_read_open_memory()

Packit 08bd4c
Packit 08bd4c

Like

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

Packit 08bd4c
Packit 08bd4c

A complete

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

Packit 08bd4c
Packit 08bd4c

CLIENT CALLBACKS

Packit 08bd4c
Packit 08bd4c

The callback functions must

Packit 08bd4c
match the following prototypes:

Packit 08bd4c
Packit 08bd4c

typedef

Packit 08bd4c
la_ssize_t

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_read_callback(struct archive *,

Packit 08bd4c
void *client_data,
Packit 08bd4c
const void **buffer)

Packit 08bd4c
Packit 08bd4c

typedef

Packit 08bd4c
la_int64_t

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_skip_callback(struct archive *,

Packit 08bd4c
void *client_data,
Packit 08bd4c
off_t request)

Packit 08bd4c
Packit 08bd4c

typedef

Packit 08bd4c
int archive_open_callback(struct archive
Packit 08bd4c
*, void *client_data)

Packit 08bd4c
Packit 08bd4c

typedef

Packit 08bd4c
int archive_close_callback(struct archive
Packit 08bd4c
*, void *client_data)

Packit 08bd4c
Packit 08bd4c

The open

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

Packit 08bd4c
Packit 08bd4c

The read

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

Packit 08bd4c
Packit 08bd4c

The skip

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

Packit 08bd4c
Packit 08bd4c

The close

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

Packit 08bd4c
Packit 08bd4c

RETURN VALUES

Packit 08bd4c
Packit 08bd4c

These functions return

Packit 08bd4c
ARCHIVE_OK on success, or ARCHIVE_FATAL.

Packit 08bd4c
Packit 08bd4c

ERRORS

Packit 08bd4c
Packit 08bd4c

Detailed error codes and textual

Packit 08bd4c
descriptions are available from the archive_errno()
Packit 08bd4c
and archive_error_string() functions.

Packit 08bd4c
Packit 08bd4c

SEE ALSO

Packit 08bd4c
Packit 08bd4c

tar(1), libarchive(3),

Packit 08bd4c
archive_read(3), archive_read_data(3),
Packit 08bd4c
archive_read_filter(3), archive_read_format(3),
Packit 08bd4c
archive_read_set_options(3), archive_util(3), tar(5)

Packit 08bd4c
Packit 08bd4c

BSD

Packit 08bd4c
February 2, 2012 BSD

Packit 08bd4c

Packit 08bd4c
</body>
Packit 08bd4c
</html>