1. 製品
  2.   圧縮
  3.   Libarchive 
 
  

圧縮ファイル形式用のオープンソース C API

TAR、ZIP、7-ZIP、CPIO、PAX、ISO 形式のストリーミング アーカイブを読み書きするための C ライブラリ。 

libarchive は、ソフトウェア開発者が TAR、ZIP、7-ZIP、CPIO、PAX、ISO9660 イメージなどのさまざまな形式のストリーミング アーカイブを読み書きできるようにするオープン ソースの純粋な C ライブラリです。 Libarchive の優れた点は、高度にモジュール化されていることです。最初から、新しいアーカイブ形式を追加することが他のライブラリと比較して非常に簡単になるように設計されています。

libarchive は、いくつかの一般的な圧縮ファイル形式の読み取りと書き込みをサポートしています。 TAR、ZIP、7-ZIP、CPIO、PAX、RAR、XAR、LHA、AR、CAB、MTREE、ISO イメージなど、いくつかの一般的な形式を読み取ります。また、TAR、ZIP、ISO、XAR、PAX、CPIO、AR、MTREE、SHAR アーカイブなどの一般的な形式の書き込みサポートも提供します。

Previous Next

Liarchive の使用を開始する

libarchive ディストリビューションには、ほぼすべての POSIX ライクなシステムに libarchive、bsdtar、および bsdcpio をインストールするために使用できる、Autoconf によって生成された標準の「configure」スクリプトが含まれています。

典型的なインストール コードを以下に示します。

ここにコマンドがあります

$ tar xzf libarchive-2.7.0.tar.gz
$ cd libarchive-2.7.0
$ ./configure
$ make
$ make check
$ make install 

「cmake」ユーティリティを使用して、Windows の Visual Studio や Mac OS の XCode など、さまざまな IDE の構成ファイルを生成することもできます。 libarchive 2.6.990a 以降で使用できることに注意してください。最初に、プラットフォームに適したバージョンの cmake ツールを入手してインストールする必要があります。

自動フォーマット検出機能を使用する

libarchive は、アーカイブを読み取るときに自動フォーマット検出機能を使用します。複数のモジュールを使用して受信データを調べる内部の「入札」プロセスを使用します。検出器は、Tar、Gzip、Bzip2、およびその他の多くの一般的な圧縮アルゴリズムで圧縮されたアーカイブに自動的に取り組みます。

Gzip された TAR アーカイブへのファイルの書き込み

libarchive を使用すると、ソフトウェア開発者はファイルのグループを gzip された tar アーカイブに書き込むことができます。書き込み機能は、読み取り機能に比べて複雑です。一般的な手順は、最初に struct アーカイブ オブジェクトを作成し、任意のオプションを設定し、アーカイブを初期化し、エントリを追加し、最後にアーカイブを閉じてすべてのリソースを解放することを忘れないことです。

ファイルの内容を読み取るための C API

libarchive を使用すると、コンピューター プログラマーはファイルの内容を読み取って抽出できます。アーカイブからファイルを抽出するには、最初に、必要なファイル名のファイルが見つかるまで繰り返します。その後、データを読み取り、ディスク上のファイルに書き込むことができます。読み取り時に圧縮とフォーマットが自動的に検出されます。

C アプリ内のディスクにアーカイブを抽出する方法

libarchive API は、コンピューター プログラマーにほとんどのアーカイブをディスクに抽出する機能を提供します。アーカイブを抽出するには、入力アーカイブからヘッダーを読み取り、それらをディスクに書き込む必要があります。タスクを完了するには、読み取りアーカイブからデータを取得し、それを書き込みハンドラーに書き込む必要があります。

 日本