diff options
Diffstat (limited to 'Utilities/cmlibarchive/libarchive/libarchive.3')
-rw-r--r-- | Utilities/cmlibarchive/libarchive/libarchive.3 | 331 |
1 files changed, 0 insertions, 331 deletions
diff --git a/Utilities/cmlibarchive/libarchive/libarchive.3 b/Utilities/cmlibarchive/libarchive/libarchive.3 deleted file mode 100644 index 8c19d00..0000000 --- a/Utilities/cmlibarchive/libarchive/libarchive.3 +++ /dev/null @@ -1,331 +0,0 @@ -.\" Copyright (c) 2003-2007 Tim Kientzle -.\" All rights reserved. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" $FreeBSD: src/lib/libarchive/libarchive.3,v 1.11 2007/01/09 08:05:56 kientzle Exp $ -.\" -.Dd August 19, 2006 -.Dt LIBARCHIVE 3 -.Os -.Sh NAME -.Nm libarchive -.Nd functions for reading and writing streaming archives -.Sh LIBRARY -.Lb libarchive -.Sh OVERVIEW -The -.Nm -library provides a flexible interface for reading and writing -streaming archive files such as tar and cpio. -The library is inherently stream-oriented; readers serially iterate through -the archive, writers serially add things to the archive. -In particular, note that there is no built-in support for -random access nor for in-place modification. -.Pp -When reading an archive, the library automatically detects the -format and the compression. -The library currently has read support for: -.Bl -bullet -compact -.It -old-style tar archives, -.It -most variants of the POSIX -.Dq ustar -format, -.It -the POSIX -.Dq pax interchange -format, -.It -GNU-format tar archives, -.It -most common cpio archive formats, -.It -ISO9660 CD images (with or without RockRidge extensions), -.It -Zip archives. -.El -The library automatically detects archives compressed with -.Xr gzip 1 , -.Xr bzip2 1 , -or -.Xr compress 1 -and decompresses them transparently. -.Pp -When writing an archive, you can specify the compression -to be used and the format to use. -The library can write -.Bl -bullet -compact -.It -POSIX-standard -.Dq ustar -archives, -.It -POSIX -.Dq pax interchange format -archives, -.It -POSIX octet-oriented cpio archives, -.It -two different variants of shar archives. -.El -Pax interchange format is an extension of the tar archive format that -eliminates essentially all of the limitations of historic tar formats -in a standard fashion that is supported -by POSIX-compliant -.Xr pax 1 -implementations on many systems as well as several newer implementations of -.Xr tar 1 . -Note that the default write format will suppress the pax extended -attributes for most entries; explicitly requesting pax format will -enable those attributes for all entries. -.Pp -The read and write APIs are accessed through the -.Fn archive_read_XXX -functions and the -.Fn archive_write_XXX -functions, respectively, and either can be used independently -of the other. -.Pp -The rest of this manual page provides an overview of the library -operation. -More detailed information can be found in the individual manual -pages for each API or utility function. -.Sh READING AN ARCHIVE -To read an archive, you must first obtain an initialized -.Tn struct archive -object from -.Fn archive_read_new . -You can then modify this object for the desired operations with the -various -.Fn archive_read_set_XXX -and -.Fn archive_read_support_XXX -functions. -In particular, you will need to invoke appropriate -.Fn archive_read_support_XXX -functions to enable the corresponding compression and format -support. -Note that these latter functions perform two distinct operations: -they cause the corresponding support code to be linked into your -program, and they enable the corresponding auto-detect code. -Unless you have specific constraints, you will generally want -to invoke -.Fn archive_read_support_compression_all -and -.Fn archive_read_support_format_all -to enable auto-detect for all formats and compression types -currently supported by the library. -.Pp -Once you have prepared the -.Tn struct archive -object, you call -.Fn archive_read_open -to actually open the archive and prepare it for reading. -There are several variants of this function; -the most basic expects you to provide pointers to several -functions that can provide blocks of bytes from the archive. -There are convenience forms that allow you to -specify a filename, file descriptor, -.Ft "FILE *" -object, or a block of memory from which to read the archive data. -Note that the core library makes no assumptions about the -size of the blocks read; -callback functions are free to read whatever block size is -most appropriate for the medium. -.Pp -Each archive entry consists of a header followed by a certain -amount of data. -You can obtain the next header with -.Fn archive_read_next_header , -which returns a pointer to an -.Tn struct archive_entry -structure with information about the current archive element. -If the entry is a regular file, then the header will be followed -by the file data. -You can use -.Fn archive_read_data -(which works much like the -.Xr read 2 -system call) -to read this data from the archive. -You may prefer to use the higher-level -.Fn archive_read_data_skip , -which reads and discards the data for this entry, -.Fn archive_read_data_to_buffer , -which reads the data into an in-memory buffer, -.Fn archive_read_data_to_file , -which copies the data to the provided file descriptor, or -.Fn archive_read_extract , -which recreates the specified entry on disk and copies data -from the archive. -In particular, note that -.Fn archive_read_extract -uses the -.Tn struct archive_entry -structure that you provide it, which may differ from the -entry just read from the archive. -In particular, many applications will want to override the -pathname, file permissions, or ownership. -.Pp -Once you have finished reading data from the archive, you -should call -.Fn archive_read_close -to close the archive, then call -.Fn archive_read_finish -to release all resources, including all memory allocated by the library. -.Pp -The -.Xr archive_read 3 -manual page provides more detailed calling information for this API. -.Sh WRITING AN ARCHIVE -You use a similar process to write an archive. -The -.Fn archive_write_new -function creates an archive object useful for writing, -the various -.Fn archive_write_set_XXX -functions are used to set parameters for writing the archive, and -.Fn archive_write_open -completes the setup and opens the archive for writing. -.Pp -Individual archive entries are written in a three-step -process: -You first initialize a -.Tn struct archive_entry -structure with information about the new entry. -At a minimum, you should set the pathname of the -entry and provide a -.Va struct stat -with a valid -.Va st_mode -field, which specifies the type of object and -.Va st_size -field, which specifies the size of the data portion of the object. -The -.Fn archive_write_header -function actually writes the header data to the archive. -You can then use -.Fn archive_write_data -to write the actual data. -.Pp -After all entries have been written, use the -.Fn archive_write_finish -function to release all resources. -.Pp -The -.Xr archive_write 3 -manual page provides more detailed calling information for this API. -.Sh DESCRIPTION -Detailed descriptions of each function are provided by the -corresponding manual pages. -.Pp -All of the functions utilize an opaque -.Tn struct archive -datatype that provides access to the archive contents. -.Pp -The -.Tn struct archive_entry -structure contains a complete description of a single archive -entry. -It uses an opaque interface that is fully documented in -.Xr archive_entry 3 . -.Pp -Users familiar with historic formats should be aware that the newer -variants have eliminated most restrictions on the length of textual fields. -Clients should not assume that filenames, link names, user names, or -group names are limited in length. -In particular, pax interchange format can easily accommodate pathnames -in arbitrary character sets that exceed -.Va PATH_MAX . -.Sh RETURN VALUES -Most functions return zero on success, non-zero on error. -The return value indicates the general severity of the error, ranging -from -.Cm ARCHIVE_WARN , -which indicates a minor problem that should probably be reported -to the user, to -.Cm ARCHIVE_FATAL , -which indicates a serious problem that will prevent any further -operations on this archive. -On error, the -.Fn archive_errno -function can be used to retrieve a numeric error code (see -.Xr errno 2 ) . -The -.Fn archive_error_string -returns a textual error message suitable for display. -.Pp -.Fn archive_read_new -and -.Fn archive_write_new -return pointers to an allocated and initialized -.Tn struct archive -object. -.Pp -.Fn archive_read_data -and -.Fn archive_write_data -return a count of the number of bytes actually read or written. -A value of zero indicates the end of the data for this entry. -A negative value indicates an error, in which case the -.Fn archive_errno -and -.Fn archive_error_string -functions can be used to obtain more information. -.Sh ENVIRONMENT -There are character set conversions within the -.Xr archive_entry 3 -functions that are impacted by the currently-selected locale. -.Sh SEE ALSO -.Xr tar 1 , -.Xr archive_entry 3 , -.Xr archive_read 3 , -.Xr archive_util 3 , -.Xr archive_write 3 , -.Xr tar 5 -.Sh HISTORY -The -.Nm libarchive -library first appeared in -.Fx 5.3 . -.Sh AUTHORS -.An -nosplit -The -.Nm libarchive -library was written by -.An Tim Kientzle Aq kientzle@acm.org . -.Sh BUGS -Some archive formats support information that is not supported by -.Tn struct archive_entry . -Such information cannot be fully archived or restored using this library. -This includes, for example, comments, character sets, -or the arbitrary key/value pairs that can appear in -pax interchange format archives. -.Pp -Conversely, of course, not all of the information that can be -stored in an -.Tn struct archive_entry -is supported by all formats. -For example, cpio formats do not support nanosecond timestamps; -old tar formats do not support large device numbers. |