|
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>
|