EN JA
ARCHIVE_WRITE_OPTIONS(3)
ARCHIVE_WRITE_OPTIONS(3) FreeBSD Library Functions Manual ARCHIVE_WRITE_OPTIONS(3)

名称

archive_write_set_filter_option, archive_write_set_format_option, archive_write_set_option, archive_write_set_optionsアーカイブを読み込むためのオプションを制御する関数群

ライブラリ

ストリーミングアーカイブライブラリ (libarchive, -larchive)

書式

int
archive_write_set_filter_option( struct archive *, const char *module, const char *option, const char *value);

int
archive_write_set_format_option( struct archive *, const char *module, const char *option, const char *value);

int
archive_write_set_option( struct archive *, const char *module, const char *option, const char *value);

int
archive_write_set_options( struct archive *, const char *options);

解説

これらの関数は、特定の書き込みモジュールを設定するために、 libarchive のクライアントに対する方法を提供します。
archive_write_set_filter_option(), archive_write_set_format_option()
(圧縮復元のフィルタを含む) 現在登録されたフィルタまたは書式リーダに渡されるオプションを指定します。

optionvalue の両方とも NULL であるなら、これらの関数は、何も行わず、 ARCHIVE_OK が返されます。 optionNULL であるが、 value がそうでないなら、これらの関数は、何も行わず、 ARCHIVE_FAILED が返されます。

moduleNULL でないなら、 optionvalue は、 module と名前が付けられたフィルタまたはリーダに提供されます。返り値は、モジュールの返り値になります。そのようなモジュールがないなら、 ARCHIVE_FAILED が返されます。

moduleNULL であるなら、 optionvalue は、すべての登録されたモジュールに提供されます。あらゆるモジュールが ARCHIVE_FATAL を返すなら、この値は、直ちに返されます。そうでなければ、あらゆるモジュールがオプションを受け付けるなら ARCHIVE_OK が返され、他のすべての場合に ARCHIVE_FAILED が返されます。

archive_write_set_option()
archive_write_set_format_option() を呼び出し、次に archive_write_set_filter_option() を呼び出します。いずれかの関数が ARCHIVE_FATAL を返すなら、 ARCHIVE_FATAL が、直ちに返されます。そうでなければ、2 つの値のより大きなものが、返されます。
archive_write_set_options()
options は、オプションのコンマで区切られたリストです。 optionsNULL か、または空であるなら、 ARCHIVE_OK が直ちに返されます。

個別のオプションには、次の形式のうちの 1 つがあります:

option=value
オプション/値のペアは、すべてのモジュールに提供されます。この名前があるオプションを受け付けないモジュールは、それを無視します。
option
オプションは、“1”の値ですべてのモジュールに提供されます。
!option
オプションは、NULL の値ですべてのモジュールに提供されます。
module:option=value, module:option, module:!option
上記と同様ですが、対応するオプションと値は、名前が module と一致するモジュールにのみ提供されます。

オプション

フィルタ gzip
compression-level
値は、gzip の圧縮レベルを指定する 10 進数の整数として解釈されます。
フィルタ xz
compression-level
値は、圧縮レベルを指定する 10 進数の整数として解釈されます。
書式 mtree
cksum, device, flags, gid, gname, indent, link, md5, mode, nlink, rmd160, sha1, sha256, sha384, sha512, size, time, uid, uname
mtree の出力で特有のキーワードを有効にします。対応するキーワードを無効にするためには、感嘆符を前に置きます。デフォルトは、“device, flags, gid, gname, link, mode, nlink, size, time, type, uid, uname”と同等です。
all
上記のキーワードをすべて有効にします。
use-set
次のファイルおよび/またはディレクトリのためのデフォルト値を指定する /set 行の生成を有効にします。
indent
XXX 説明が必要 XXX
書式 iso9660 - ボリュームメタデータ
これらのオプションは、標準の ISO9660 メタデータを設定するために使用されます。
abstract-file= filename
指定された名前があるファイルは、このボリュームのための要約を保持するように ISO9660 メタデータで識別されます。デフォルト: なし。
application-id= filename
指定された名前があるファイルは、このボリュームのためのアプリケーション識別子を保持するように ISO9660 メタデータで識別されます。デフォルト: なし。
biblio-file= filename
指定された名前があるファイルは、このボリュームのための目録を保持するように ISO9660 メタデータで識別されます。デフォルト: なし。
copyright-file= filename
指定された名前があるファイルは、このボリュームのための著作権を保有するように ISO9660 メタデータで識別されます。デフォルト: なし。
publisher= filename
指定された名前があるファイルは、このボリュームのための出版者情報を保持するように ISO9660 メタデータで識別されます。デフォルト: なし。
volume-id= string
指定された文字列は、ISO9660 メタデータのボリューム識別子として使用されます。それは、32 バイトに制限されています。デフォルト: なし。
書式 iso9660 - ブートサポート
これらのオプションは、様々なシステムで直接ブートすことができる ISO9660 イメージを作るために使用されます。
boot= filename
この名前と一致するファイルは、El Torito ブートイメージファイルとして使用されます。
boot-catalog= name
El Torito ブートカタログのために使用される名前。デフォルト: boot.catalog
boot-info-table
boot= filename オプションによって提供されるブートイメージファイルは、 8 から 64 バイトの適切なブート情報で編集されます。デフォルト: 無効。
boot-load-seg= hexadecimal-number
エミュレーションなしのブートイメージのためのロードセグメント。
boot-load-size= decimal-number
エミュレーションなしのブートイメージからロードされる "仮想の" 512 バイトのセクタの数。ある非常に古い BIOS は、非常に小さなイメージだけをロードすることができ、この値を 4 に設定することは、しばしばそのような BIOS が (次に、それ自体の残りをロードするために十分に知的である必要がある) ブートイメージの最初の部分をロードすることができます。これは、利用者が非常に古い BIOS があるシステムをサポートしようとしていなければ、必要ないはずです。これは、イメージの全サイズをデフォルトとします。
boot-type= value
El Torito ブートイメージによって使用されるブートのセマンティックを指定します: valuefd であるなら、ブートイメージは、ブート可能なフロッピイメージであると仮定されます。 valuehd であるなら、ブートイメージは、ブート可能なハードディスクイメージであると仮定されます。 valueno-emulation (エミュレーションなし) であるなら、ブートイメージは、フロッピまたはハードディスクエミュレーションなしで使用されます。ブートイメージが正確に 1.2MB、1.44MB または 2.88MB であるなら、デフォルトは、 fd で、そうでなければ、デフォルトは、 no-emulation (エミュレーションなし) です。
書式 iso9660 - ファイル名とサイズ拡張
基本的な ISO9660 書式に対する様々な拡張。
allow-ldots
有効であるなら、ファイル名は、先導するピリオドで始まることができます。無効であるなら、先導するピリオドで始まるファイル名は、標準の ISO9660 ネーム空間の下線文字によって置き換えられたピリオドがあります。これは、Rockridge または Joliet 拡張領域に格納された名前に影響を与えません。デフォルト: 無効。
allow-lowercase
有効であるなら、ファイル名は、小文字を含むことができます。無効であるなら、ファイル名は、大文字に強制されます。これは、Rockridge または Joliet 拡張領域に格納された名前に影響を与えません。デフォルト: 無効。
allow-multidot
有効であるなら、ISO9660 仕様に違反して、ファイル名は、複数のピリオド文字を含むことができます。無効であるなら、追加されたピリオドは、下線文字に変換されます。これは、Rockridge または Joliet 拡張領域に格納された名前に影響を与えません。デフォルト: 無効。
allow-period
有効であるなら、ISO9660 仕様に違反して、ファイル名は、後続するピリオド文字を含むことができます。無効であるなら、後続するピリオドは、下線文字に変換されます。これは、Rockridge または Joliet 拡張領域に格納された名前に影響を与えません。デフォルト: 無効。
allow-pvd-lowercase
有効であるなら、ISO9660 仕様に違反して、Primary Volume Descriptor (プライマリボリューム記述子) は、小文字の ASCII 文字含むことができます。無効であるなら、文字は、大文字の ASCII に変換されます。デフォルト: 無効。
allow-sharp-tilde
有効であるなら、ISO9660 仕様に違反して、シャープとチルダ文字がファイル名に許されます。無効であるなら、そのような文字は、下線文字に変換されます。デフォルト: 無効。
allow-vernum
有効であるなら、バージョン番号が、ファイルに含まれます。無効であるなら、バージョン番号は、ISO9660 標準に違反して、抑制されます。これは、Rockridge または Joliet 拡張領域に格納された名前に影響を与えません。デフォルト: 無効。
iso-level
これは、コア ISO9660 領域のファイルサイズとファイル名の拡張のサポートを有効にします。ここで指定された名前の拡張は、 Rockridge または Joliet 拡張領域に格納された名前に影響を与えません。
iso-level=1
ISO9660 イメージの最も準拠した形式。ファイル名は、8.3 文字の大文字の形式に制限され、ディレクトリ名は、8 文字の大文字に制限され、ファイルは、4 GiB に制限され、全部の ISO9660 イメージは、4 GiB を越えることはできません。
iso-level=2
ファイル名は、30 文字の拡張がある 30 文字の大文字に制限され、ディレクトリ名は、30 文字に制限され、ファイルは、4 GiB に制限されています。
iso-level=3
ファイルが 4 GiB を越えることを除いて、 iso-level=2 と同様です。
iso-level=4
ファイル名が 193 文字以内で、任意の 8 ビット文字を含むことができることを除いて、 iso-level=3 と同様です。
joliet
Microsoft の Joliet 拡張は、各ファイルに関するディレクトリ情報の完全に分離されたセットを格納します。特に、この情報は、255 文字以内の Unicode ファイル名を含んでいます。デフォルト: 有効。
limit-depth
有効であるなら、libarchive は、パス名が 8 つのディレクトリレベルの ISO9660 制限を越えないことを保証するためにディレクトリ再配置レコードを使用します。無効であるなら、再配置は、生じません。デフォルト: 有効。
limit-dirs
有効であるなら、libarchive は、65536 を超えるディレクトリがあるなら、エラーを引き起こします。無効であるなら、ディレクトリの数に制限はありません。デフォルト: 有効。
pad
有効であるなら、0 バイトの 300 kiB は、アーカイブの終りに追加されます。デフォルト: 有効。
relaxed-filenames
有効であるなら、(また、 allow-lowercase が指定されないなら、小文字を除いて) すべての 7 ビットの ASCII 文字が、ファイル名に許可されます。これは、ISO9660 標準に違反しています。これは、Rockridge または Joliet 拡張領域に格納された名前に影響を与えません。デフォルト: 無効。
rockridge
Rockridge 拡張は、mtime、atime、ctime、パーミッションと任意の 8 ビット文字があるロングファイル名を含む、各ファイルで POSIX スタイルのファイル情報の追加のセットを格納します。また、これらの拡張は、シンボリックリンクと他の POSIX ファイルのタイプをサポートしています。デフォルト: 有効。
書式 iso9660 - zisofs サポート
zisofs 拡張は、gzip 互換の圧縮を使用して、独立して圧縮される各ファイルを可能にします。これは、大幅なサイズの節減を提供することができますが、これらの拡張のサポートを得ることを読み込むシステムに要求します。これらの拡張は、デフォルトで無効にされます。
compression-level=number
デフレート (deflate) 圧縮プログラムによって使用される圧縮レベル。訳注: deflate は、gzip で使用される圧縮アルゴリズム。 0 (最小の努力) から 9 (最大の努力) までの範囲です。デフォルト: 6。
zisofs
zisofs=direct と同義語です。
zisofs=direct
アーカイブの各ファイルを圧縮します。 zisofs=indirect と異なり、これは、libarchive 内でもっぱら扱われ、別のユーティリティを必要としません。最良の結果のために、libarchive は、各ファイルをテストし、圧縮が実際に少しも空間を節減しないなら、圧縮されていないファイルを格納します。特に、2k 以下のファイルは、決して圧縮されません。ブートイメージファイルが圧縮されないことに注意してください。
zisofs=indirect
mkzftree ユーティリティで既に圧縮されたファイルを認識し、読み込みプログラムがこれらを、zisofs 圧縮したファイルであると正確に確認できるように、必要なファイルのメタデータをセットアップします。
zisofs-exclude= filename
zisofs=direct を使用するとき、圧縮されるべきでないファイル名を指定します。多くのファイルで圧縮を抑制するために、複数回、このオプションを与えることができます。

使用例

次の例は、gzip で圧縮された ISO9660 形式イメージを作成するためにアーカイブ書き込みハンドルを作成します。ここで、2 つのオプションは、 ISO9660 アーカイブが El Torito ブートのためのブートイメージとして kernel.img を使用し、gzip 圧縮プログラムが最大の圧縮レベルを使用するべきであることを指定します。

a = archive_write_new(); 
archive_write_add_filter_gzip(a); 
archive_write_set_format_iso9660(a); 
archive_write_set_options(a, "boot=kernel.img,compression=9"); 
archive_write_open_filename(a, filename, blocksize);

エラー

詳細なエラーコードとテキスト形式の記述は、 archive_errno() と archive_error_string() 関数から利用可能です。

歴史

libarchive ライブラリは、 FreeBSD 5.3 ではじめて登場しました。

作者

libarchive のためのオプションのサポートは、最初に Michihiro NAKAJIMA によって実装されました。

バグ

February 2, 2012 FreeBSD