mirror of
https://github.com/cmclark00/retro-imager.git
synced 2025-05-20 08:55:21 +01:00
Qt/QML edition
This commit is contained in:
commit
d7b361ba44
2168 changed files with 721948 additions and 0 deletions
208
dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteOpen3.wiki
vendored
Normal file
208
dependencies/libarchive-3.4.2/doc/wiki/ManPageArchiveWriteOpen3.wiki
vendored
Normal file
|
@ -0,0 +1,208 @@
|
|||
ARCHIVE_WRITE_OPEN(3) manual page
|
||||
== NAME ==
|
||||
'''archive_write_open''',
|
||||
'''archive_write_open_fd''',
|
||||
'''archive_write_open_FILE''',
|
||||
'''archive_write_open_filename''',
|
||||
'''archive_write_open_memory'''
|
||||
- functions for creating archives
|
||||
== LIBRARY ==
|
||||
Streaming Archive Library (libarchive, -larchive)
|
||||
== SYNOPSIS ==
|
||||
'''<nowiki>#include <archive.h></nowiki>'''
|
||||
<br>
|
||||
''int''
|
||||
<br>
|
||||
'''archive_write_open'''(''struct archive *'', ''void *client_data'', ''archive_open_callback *'', ''archive_write_callback *'', ''archive_close_callback *'');
|
||||
<br>
|
||||
''int''
|
||||
<br>
|
||||
'''archive_write_open_fd'''(''struct archive *'', ''int fd'');
|
||||
<br>
|
||||
''int''
|
||||
<br>
|
||||
'''archive_write_open_FILE'''(''struct archive *'', ''FILE *file'');
|
||||
<br>
|
||||
''int''
|
||||
<br>
|
||||
'''archive_write_open_filename'''(''struct archive *'', ''const char *filename'');
|
||||
<br>
|
||||
''int''
|
||||
<br>
|
||||
'''archive_write_open_memory'''(''struct archive *'', ''void *buffer'', ''size_t bufferSize'', ''size_t *outUsed'');
|
||||
== DESCRIPTION ==
|
||||
<dl>
|
||||
<dt>'''archive_write_open'''()</dt><dd>
|
||||
Freeze the settings, open the archive, and prepare for writing entries.
|
||||
This is the most generic form of this function, which accepts
|
||||
pointers to three callback functions which will be invoked by
|
||||
the compression layer to write the constructed archive.
|
||||
This does not alter the default archive padding.
|
||||
</dd><dt>'''archive_write_open_fd'''()</dt><dd>
|
||||
A convenience form of
|
||||
'''archive_write_open'''()
|
||||
that accepts a file descriptor.
|
||||
The
|
||||
'''archive_write_open_fd'''()
|
||||
function is safe for use with tape drives or other
|
||||
block-oriented devices.
|
||||
</dd><dt>'''archive_write_open_FILE'''()</dt><dd>
|
||||
A convenience form of
|
||||
'''archive_write_open'''()
|
||||
that accepts a
|
||||
''FILE *''
|
||||
pointer.
|
||||
Note that
|
||||
'''archive_write_open_FILE'''()
|
||||
is not safe for writing to tape drives or other devices
|
||||
that require correct blocking.
|
||||
</dd><dt>'''archive_write_open_file'''()</dt><dd>
|
||||
A deprecated synonym for
|
||||
'''archive_write_open_filename'''().
|
||||
</dd><dt>'''archive_write_open_filename'''()</dt><dd>
|
||||
A convenience form of
|
||||
'''archive_write_open'''()
|
||||
that accepts a filename.
|
||||
A NULL argument indicates that the output should be written to standard output;
|
||||
an argument of
|
||||
"-"
|
||||
will open a file with that name.
|
||||
If you have not invoked
|
||||
'''archive_write_set_bytes_in_last_block'''(),
|
||||
then
|
||||
'''archive_write_open_filename'''()
|
||||
will adjust the last-block padding depending on the file:
|
||||
it will enable padding when writing to standard output or
|
||||
to a character or block device node, it will disable padding otherwise.
|
||||
You can override this by manually invoking
|
||||
'''archive_write_set_bytes_in_last_block'''()
|
||||
before calling
|
||||
'''archive_write_open'''().
|
||||
The
|
||||
'''archive_write_open_filename'''()
|
||||
function is safe for use with tape drives or other
|
||||
block-oriented devices.
|
||||
</dd><dt>'''archive_write_open_memory'''()</dt><dd>
|
||||
A convenience form of
|
||||
'''archive_write_open'''()
|
||||
that accepts a pointer to a block of memory that will receive
|
||||
the archive.
|
||||
The final
|
||||
''size_t *''
|
||||
argument points to a variable that will be updated
|
||||
after each write to reflect how much of the buffer
|
||||
is currently in use.
|
||||
You should be careful to ensure that this variable
|
||||
remains allocated until after the archive is
|
||||
closed.
|
||||
This function will disable padding unless you
|
||||
have specifically set the block size.
|
||||
</dd></dl>
|
||||
More information about the
|
||||
''struct'' archive
|
||||
object and the overall design of the library can be found in the
|
||||
[[ManPageibarchive3]]
|
||||
overview.
|
||||
|
||||
Note that the convenience forms above vary in how
|
||||
they block the output.
|
||||
See
|
||||
[[ManPagerchiveritelocksize3]]
|
||||
if you need to control the block size used for writes
|
||||
or the end-of-file padding behavior.
|
||||
== CLIENT CALLBACKS ==
|
||||
To use this library, you will need to define and register
|
||||
callback functions that will be invoked to write data to the
|
||||
resulting archive.
|
||||
These functions are registered by calling
|
||||
'''archive_write_open'''():
|
||||
<ul>
|
||||
<li>
|
||||
''typedef int''
|
||||
'''archive_open_callback'''(''struct archive *'', ''void *client_data'')
|
||||
</li></ul>
|
||||
|
||||
The open callback is invoked by
|
||||
'''archive_write_open'''().
|
||||
It should return
|
||||
'''ARCHIVE_OK'''
|
||||
if the underlying file or data source is successfully
|
||||
opened.
|
||||
If the open fails, it should call
|
||||
'''archive_set_error'''()
|
||||
to register an error code and message and return
|
||||
'''ARCHIVE_FATAL'''.
|
||||
<ul>
|
||||
<li>
|
||||
''typedef la_ssize_t''
|
||||
'''archive_write_callback'''(''struct archive *'', ''void *client_data'', ''const void *buffer'', ''size_t length'')
|
||||
</li></ul>
|
||||
|
||||
The write callback is invoked whenever the library
|
||||
needs to write raw bytes to the archive.
|
||||
For correct blocking, each call to the write callback function
|
||||
should translate into a single
|
||||
[[write(2)|http://www.freebsd.org/cgi/man.cgi?query=write&sektion=2]]
|
||||
system call.
|
||||
This is especially critical when writing archives to tape drives.
|
||||
On success, the write callback should return the
|
||||
number of bytes actually written.
|
||||
On error, the callback should invoke
|
||||
'''archive_set_error'''()
|
||||
to register an error code and message and return -1.
|
||||
<ul>
|
||||
<li>
|
||||
''typedef int''
|
||||
'''archive_close_callback'''(''struct archive *'', ''void *client_data'')
|
||||
</li></ul>
|
||||
|
||||
The close callback is invoked by archive_close when
|
||||
the archive processing is complete.
|
||||
The callback should return
|
||||
'''ARCHIVE_OK'''
|
||||
on success.
|
||||
On failure, the callback should invoke
|
||||
'''archive_set_error'''()
|
||||
to register an error code and message and
|
||||
return
|
||||
'''ARCHIVE_FATAL'''.
|
||||
|
||||
Note that if the client-provided write callback function
|
||||
returns a non-zero value, that error will be propagated back to the caller
|
||||
through whatever API function resulted in that call, which
|
||||
may include
|
||||
'''archive_write_header'''(),
|
||||
'''archive_write_data'''(),
|
||||
'''archive_write_close'''(),
|
||||
'''archive_write_finish'''(),
|
||||
or
|
||||
'''archive_write_free'''().
|
||||
The client callback can call
|
||||
'''archive_set_error'''()
|
||||
to provide values that can then be retrieved by
|
||||
'''archive_errno'''()
|
||||
and
|
||||
'''archive_error_string'''().
|
||||
== RETURN VALUES ==
|
||||
These functions return
|
||||
'''ARCHIVE_OK'''
|
||||
on success, or
|
||||
'''ARCHIVE_FATAL'''.
|
||||
== ERRORS ==
|
||||
Detailed error codes and textual descriptions are available from the
|
||||
'''archive_errno'''()
|
||||
and
|
||||
'''archive_error_string'''()
|
||||
functions.
|
||||
== SEE ALSO ==
|
||||
[[ManPageBsdtar1]],
|
||||
[[ManPagerchiverite3]],
|
||||
[[ManPagerchiveritelocksize3]],
|
||||
[[ManPagerchiveriteilter3]],
|
||||
[[ManPagerchiveriteormat3]],
|
||||
[[ManPagerchiveriteew3]],
|
||||
[[ManPagerchiveriteetptions3]],
|
||||
[[ManPageibarchive3]],
|
||||
[[ManPageCpio5]],
|
||||
[[ManPageMtree5]],
|
||||
[[ManPageTar5]]
|
Loading…
Add table
Add a link
Reference in a new issue