|
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_WRITE_OPEN(3) BSD Library Functions Manual
|
|
Packit Service |
1d0348 |
ARCHIVE_WRITE_OPEN(3)
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
NAME
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_open,
|
|
Packit Service |
1d0348 |
archive_write_open_fd,
|
|
Packit Service |
1d0348 |
archive_write_open_FILE,
|
|
Packit Service |
1d0348 |
archive_write_open_filename,
|
|
Packit Service |
1d0348 |
archive_write_open_memory — functions for
|
|
Packit Service |
1d0348 |
creating 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_write_open(struct archive *,
|
|
Packit Service |
1d0348 |
void *client_data,
|
|
Packit Service |
1d0348 |
archive_open_callback *,
|
|
Packit Service |
1d0348 |
archive_write_callback *,
|
|
Packit Service |
1d0348 |
archive_close_callback *);
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
int
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_open_fd(struct archive *,
|
|
Packit Service |
1d0348 |
int fd);
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
int
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_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_write_open_filename(struct archive *,
|
|
Packit Service |
1d0348 |
const char *filename);
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
int
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_open_memory(struct archive *,
|
|
Packit Service |
1d0348 |
void *buffer, size_t bufferSize,
|
|
Packit Service |
1d0348 |
size_t *outUsed);
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
DESCRIPTION
|
|
Packit Service |
1d0348 |
archive_write_open()
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
Freeze the settings, open the
|
|
Packit Service |
1d0348 |
archive, and prepare for writing entries. This is the most
|
|
Packit Service |
1d0348 |
generic form of this function, which accepts pointers to
|
|
Packit Service |
1d0348 |
three callback functions which will be invoked by the
|
|
Packit Service |
1d0348 |
compression layer to write the constructed archive. This
|
|
Packit Service |
1d0348 |
does not alter the default archive padding.
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_open_fd()
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
A convenience form of
|
|
Packit Service |
1d0348 |
archive_write_open() that accepts a file descriptor.
|
|
Packit Service |
1d0348 |
The archive_write_open_fd() function is safe for use
|
|
Packit Service |
1d0348 |
with tape drives or other block-oriented devices.
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_open_FILE()
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
A convenience form of
|
|
Packit Service |
1d0348 |
archive_write_open() that accepts a FILE *
|
|
Packit Service |
1d0348 |
pointer. Note that archive_write_open_FILE() is not
|
|
Packit Service |
1d0348 |
safe for writing to tape drives or other devices that
|
|
Packit Service |
1d0348 |
require correct blocking.
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_open_file()
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
A deprecated synonym for
|
|
Packit Service |
1d0348 |
archive_write_open_filename().
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_open_filename()
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
A convenience form of
|
|
Packit Service |
1d0348 |
archive_write_open() that accepts a filename. A NULL
|
|
Packit Service |
1d0348 |
argument indicates that the output should be written to
|
|
Packit Service |
1d0348 |
standard output; an argument of
|
|
Packit Service |
1d0348 |
’’-’’ will open a file with that
|
|
Packit Service |
1d0348 |
name. If you have not invoked
|
|
Packit Service |
1d0348 |
archive_write_set_bytes_in_last_block(), then
|
|
Packit Service |
1d0348 |
archive_write_open_filename() will adjust the
|
|
Packit Service |
1d0348 |
last-block padding depending on the file: it will enable
|
|
Packit Service |
1d0348 |
padding when writing to standard output or to a character or
|
|
Packit Service |
1d0348 |
block device node, it will disable padding otherwise. You
|
|
Packit Service |
1d0348 |
can override this by manually invoking
|
|
Packit Service |
1d0348 |
archive_write_set_bytes_in_last_block() before
|
|
Packit Service |
1d0348 |
calling archive_write_open(). The
|
|
Packit Service |
1d0348 |
archive_write_open_filename() function is safe for
|
|
Packit Service |
1d0348 |
use with tape drives or other block-oriented devices.
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_open_memory()
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
A convenience form of
|
|
Packit Service |
1d0348 |
archive_write_open() that accepts a pointer to a
|
|
Packit Service |
1d0348 |
block of memory that will receive the archive. The final
|
|
Packit Service |
1d0348 |
size_t * argument points to a variable that will be
|
|
Packit Service |
1d0348 |
updated after each write to reflect how much of the buffer
|
|
Packit Service |
1d0348 |
is currently in use. You should be careful to ensure that
|
|
Packit Service |
1d0348 |
this variable remains allocated until after the archive is
|
|
Packit Service |
1d0348 |
closed. This function will disable padding unless you have
|
|
Packit Service |
1d0348 |
specifically set the block size.
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
More information about the
|
|
Packit Service |
1d0348 |
struct archive object and the overall design of the
|
|
Packit Service |
1d0348 |
library can be found in the libarchive(3) overview.
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
Note that the
|
|
Packit Service |
1d0348 |
convenience forms above vary in how they block the output.
|
|
Packit Service |
1d0348 |
See archive_write_blocksize(3) if you need to control the
|
|
Packit Service |
1d0348 |
block size used for writes or the end-of-file padding
|
|
Packit Service |
1d0348 |
behavior.
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
CLIENT CALLBACKS
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
To use this library, you will
|
|
Packit Service |
1d0348 |
need to define and register callback functions that will be
|
|
Packit Service |
1d0348 |
invoked to write data to the resulting archive. These
|
|
Packit Service |
1d0348 |
functions are registered by calling
|
|
Packit Service |
1d0348 |
archive_write_open():
|
|
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 |
The open
|
|
Packit Service |
1d0348 |
callback is invoked by archive_write_open(). It
|
|
Packit Service |
1d0348 |
should return ARCHIVE_OK if the underlying file or
|
|
Packit Service |
1d0348 |
data source is successfully opened. If the open fails, it
|
|
Packit Service |
1d0348 |
should call archive_set_error() to register an error
|
|
Packit Service |
1d0348 |
code and message and return ARCHIVE_FATAL.
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
typedef
|
|
Packit Service |
1d0348 |
la_ssize_t
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
archive_write_callback(struct archive *,
|
|
Packit Service |
1d0348 |
void *client_data,
|
|
Packit Service |
1d0348 |
const void *buffer,
|
|
Packit Service |
1d0348 |
size_t length)
|
|
Packit Service |
1d0348 |
|
|
Packit Service |
1d0348 |
The write
|
|
Packit Service |
1d0348 |
callback is invoked whenever the library needs to write raw
|
|
Packit Service |
1d0348 |
bytes to the archive. For correct blocking, each call to the
|
|
Packit Service |
1d0348 |
write callback function should translate into a single
|
|
Packit Service |
1d0348 |
write(2) system call. This is especially critical when
|
|
Packit Service |
1d0348 |
writing archives to tape drives. On success, the write
|
|
Packit Service |
1d0348 |
callback should return the number of bytes actually written.
|
|
Packit Service |
1d0348 |
On error, the callback should invoke
|
|
Packit Service |
1d0348 |
archive_set_error() to register an error code and
|
|
Packit Service |
1d0348 |
message and return -1.
|
|
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 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 |
Note that if the
|
|
Packit Service |
1d0348 |
client-provided write callback function returns a non-zero
|
|
Packit Service |
1d0348 |
value, that error will be propagated back to the caller
|
|
Packit Service |
1d0348 |
through whatever API function resulted in that call, which
|
|
Packit Service |
1d0348 |
may include archive_write_header(),
|
|
Packit Service |
1d0348 |
archive_write_data(), archive_write_close(),
|
|
Packit Service |
1d0348 |
archive_write_finish(), or
|
|
Packit Service |
1d0348 |
archive_write_free(). The client callback can call
|
|
Packit Service |
1d0348 |
archive_set_error() to provide values that can then
|
|
Packit Service |
1d0348 |
be retrieved by archive_errno() and
|
|
Packit Service |
1d0348 |
archive_error_string().
|
|
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_write(3), archive_write_blocksize(3),
|
|
Packit Service |
1d0348 |
archive_write_filter(3), archive_write_format(3),
|
|
Packit Service |
1d0348 |
archive_write_new(3), archive_write_set_options(3), cpio(5),
|
|
Packit Service |
1d0348 |
mtree(5), 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>
|