Blame doc/html/archive_write_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_WRITE_OPEN(3) BSD Library Functions Manual

Packit 08bd4c
ARCHIVE_WRITE_OPEN(3)

Packit 08bd4c
Packit 08bd4c

NAME

Packit 08bd4c
Packit 08bd4c

archive_write_open,

Packit 08bd4c
archive_write_open_fd,
Packit 08bd4c
archive_write_open_FILE,
Packit 08bd4c
archive_write_open_filename,
Packit 08bd4c
archive_write_open_memory — functions for
Packit 08bd4c
creating 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_write_open(struct archive *,

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

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_open_fd(struct archive *,

Packit 08bd4c
int fd);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_open_FILE(struct archive *,

Packit 08bd4c
FILE *file);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_open_filename(struct archive *,

Packit 08bd4c
const char *filename);

Packit 08bd4c
Packit 08bd4c

int

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_open_memory(struct archive *,

Packit 08bd4c
void *buffer, size_t bufferSize,
Packit 08bd4c
size_t *outUsed);

Packit 08bd4c
Packit 08bd4c

DESCRIPTION

Packit 08bd4c
archive_write_open()

Packit 08bd4c
Packit 08bd4c

Freeze the settings, open the

Packit 08bd4c
archive, and prepare for writing entries. This is the most
Packit 08bd4c
generic form of this function, which accepts pointers to
Packit 08bd4c
three callback functions which will be invoked by the
Packit 08bd4c
compression layer to write the constructed archive. This
Packit 08bd4c
does not alter the default archive padding.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_open_fd()

Packit 08bd4c
Packit 08bd4c

A convenience form of

Packit 08bd4c
archive_write_open() that accepts a file descriptor.
Packit 08bd4c
The archive_write_open_fd() function is safe for use
Packit 08bd4c
with tape drives or other block-oriented devices.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_open_FILE()

Packit 08bd4c
Packit 08bd4c

A convenience form of

Packit 08bd4c
archive_write_open() that accepts a FILE *
Packit 08bd4c
pointer. Note that archive_write_open_FILE() is not
Packit 08bd4c
safe for writing to tape drives or other devices that
Packit 08bd4c
require correct blocking.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_open_file()

Packit 08bd4c
Packit 08bd4c

A deprecated synonym for

Packit 08bd4c
archive_write_open_filename().

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_open_filename()

Packit 08bd4c
Packit 08bd4c

A convenience form of

Packit 08bd4c
archive_write_open() that accepts a filename. A NULL
Packit 08bd4c
argument indicates that the output should be written to
Packit 08bd4c
standard output; an argument of
Packit 08bd4c
’’-’’ will open a file with that
Packit 08bd4c
name. If you have not invoked
Packit 08bd4c
archive_write_set_bytes_in_last_block(), then
Packit 08bd4c
archive_write_open_filename() will adjust the
Packit 08bd4c
last-block padding depending on the file: it will enable
Packit 08bd4c
padding when writing to standard output or to a character or
Packit 08bd4c
block device node, it will disable padding otherwise. You
Packit 08bd4c
can override this by manually invoking
Packit 08bd4c
archive_write_set_bytes_in_last_block() before
Packit 08bd4c
calling archive_write_open(). The
Packit 08bd4c
archive_write_open_filename() function is safe for
Packit 08bd4c
use with tape drives or other block-oriented devices.

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_open_memory()

Packit 08bd4c
Packit 08bd4c

A convenience form of

Packit 08bd4c
archive_write_open() that accepts a pointer to a
Packit 08bd4c
block of memory that will receive the archive. The final
Packit 08bd4c
size_t * argument points to a variable that will be
Packit 08bd4c
updated after each write to reflect how much of the buffer
Packit 08bd4c
is currently in use. You should be careful to ensure that
Packit 08bd4c
this variable remains allocated until after the archive is
Packit 08bd4c
closed. This function will disable padding unless you have
Packit 08bd4c
specifically set the block size.

Packit 08bd4c
Packit 08bd4c

More information about the

Packit 08bd4c
struct archive object and the overall design of the
Packit 08bd4c
library can be found in the libarchive(3) overview.

Packit 08bd4c
Packit 08bd4c

Note that the

Packit 08bd4c
convenience forms above vary in how they block the output.
Packit 08bd4c
See archive_write_blocksize(3) if you need to control the
Packit 08bd4c
block size used for writes or the end-of-file padding
Packit 08bd4c
behavior.

Packit 08bd4c
Packit 08bd4c

CLIENT CALLBACKS

Packit 08bd4c
Packit 08bd4c

To use this library, you will

Packit 08bd4c
need to define and register callback functions that will be
Packit 08bd4c
invoked to write data to the resulting archive. These
Packit 08bd4c
functions are registered by calling
Packit 08bd4c
archive_write_open():

Packit 08bd4c
Packit 08bd4c

typedef

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

Packit 08bd4c
Packit 08bd4c

The open

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

Packit 08bd4c
Packit 08bd4c

typedef

Packit 08bd4c
la_ssize_t

Packit 08bd4c
Packit 08bd4c
Packit 08bd4c

archive_write_callback(struct archive *,

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

Packit 08bd4c
Packit 08bd4c

The write

Packit 08bd4c
callback is invoked whenever the library needs to write raw
Packit 08bd4c
bytes to the archive. For correct blocking, each call to the
Packit 08bd4c
write callback function should translate into a single
Packit 08bd4c
write(2) system call. This is especially critical when
Packit 08bd4c
writing archives to tape drives. On success, the write
Packit 08bd4c
callback should return the number of bytes actually written.
Packit 08bd4c
On error, the callback should invoke
Packit 08bd4c
archive_set_error() to register an error code and
Packit 08bd4c
message and return -1.

Packit 08bd4c
Packit 08bd4c

typedef

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

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

Note that if the

Packit 08bd4c
client-provided write callback function returns a non-zero
Packit 08bd4c
value, that error will be propagated back to the caller
Packit 08bd4c
through whatever API function resulted in that call, which
Packit 08bd4c
may include archive_write_header(),
Packit 08bd4c
archive_write_data(), archive_write_close(),
Packit 08bd4c
archive_write_finish(), or
Packit 08bd4c
archive_write_free(). The client callback can call
Packit 08bd4c
archive_set_error() to provide values that can then
Packit 08bd4c
be retrieved by archive_errno() and
Packit 08bd4c
archive_error_string().

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_write(3), archive_write_blocksize(3),
Packit 08bd4c
archive_write_filter(3), archive_write_format(3),
Packit 08bd4c
archive_write_new(3), archive_write_set_options(3), cpio(5),
Packit 08bd4c
mtree(5), tar(5)

Packit 08bd4c
Packit 08bd4c

BSD

Packit 08bd4c
February 2, 2012 BSD

Packit 08bd4c

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