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

名称

archive_clear_error, archive_compression, archive_compression_name, archive_copy_error, archive_errno, archive_error_string, archive_file_count, archive_filter_code, archive_filter_count, archive_filter_name, archive_format, archive_format_name, archive_position, archive_set_errorlibarchive ユーティリティ関数

ライブラリ

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

書式

#include < archive.h>

void
archive_clear_error( struct archive *);

int
archive_compression( struct archive *);

const char *
archive_compression_name( struct archive *);

void
archive_copy_error( struct archive *, struct archive *);

int
archive_errno( struct archive *);

const char *
archive_error_string( struct archive *);

int
archive_file_count( struct archive *);

int
archive_filter_code( struct archive *, int);

int
archive_filter_count( struct archive *, int);

const char *
archive_filter_name( struct archive *, int);

int
archive_format( struct archive *);

const char *
archive_format_name( struct archive *);

int64_t
archive_position( struct archive *, int);

void
archive_set_error( struct archive *, int error_code, const char *fmt, ...);

解説

これらの関数は、 libarchive(3) ライブラリで使用される struct archive オブジェクトに関する様々な情報へのアクセスを提供します。
archive_clear_error()
前の呼び出しで残されたすべてのエラー情報をクリアします。一般的に、クライアントコードでは、使用されません。
archive_compression()
archive_filter_code(a,( 0)) と同義語です。
archive_compression_name()
archive_filter_name(a,( 0)) と同義語です。
archive_copy_error()
1 つのアーカイブから別のアーカイブにエラー情報をコピーします。
archive_errno()
つい最近エラーで返った理由を示している数値エラーコード ( errno(2) 参照) を返します。エラーが起こったかどうかを確実に検出するために、これを使用することができないことに注意してください。それは、別の libarchive 関数がエラー状態を返した後だけ、使用されるべきです。
archive_error_string()
表示に適したテキスト形式のエラーメッセージを返します。ここで通常、エラーメッセージは、 archive_errno() の結果を strerror(3) に渡して得られたものより、より具体的です。
archive_file_count()
このアーカイブオブジェクトによって処理されたファイルの数のカウントを返します。カウントは、 archive_write_header(3) または archive_read_next_header(3) への呼び出しによって増加されます。
archive_filter_code()
示されたフィルタを識別する数値コードを返します。番号付けの詳細については、 archive_filter_count() を参照してください。
archive_filter_count()
現在のパイプラインのフィルタの数を返します。読み込みアーカイブハンドルについては、これらのフィルタは、自動的なフォーマット検出によって自動的に追加されます。書き込みアーカイブハンドルについては、これらのフィルタは、様々な archive_write_add_filter_XXX() 関数への呼び出しによって追加されます。結果のパイプラインのフィルタは、フィルタ 0 がフォーマットハンドラに近いフィルタとなるように、番号付けられます。便宜上、フィルタ番号を期待する関数は、高い番号が付けられたフィルタの同義語として -1 を受け付けます。

例えば、gzip され uuencode された tar アーカイブを読み込むとき、 3 つのフィルタがあります: フィルタ 0 は、gunzip フィルタで、フィルタ 1 は、uudecode フィルタで、そして、フィルタ 2 は、アーカイブ読み込み関数をラップ (wrap) する疑似フィルタです。この場合、 archive_position(a,( -1)) の要求は、現在アーカイブから読み込んだバイトの数を返す archive_position(a,( 2)) と同義語で、一方、 archive_position(a,( 1)) は、uudecode の後にバイトの数を返し、 archive_position(a,( 0)) は、圧縮復元の後にバイトの数を返します。

archive_filter_name()
示されたフィルタを識別するテキスト形式の名前を返します。番号付けの詳細については、 archive_filter_count() を参照してください。
archive_format()
現在のアーカイブエントリの書式を示す数字コードを返します。この値は、 archive_read_next_header() への呼び出しが成功すれば設定されます。この値をエントリからエントリに変更することは、一般的であることに注意してください。例えば、tar アーカイブは、GNU tar 拡張を利用するいくつかのエントリとそうしないいくつかのエントリがあります。これらのエントリには、異なった書式コードがあります。
archive_format_name()
現在のエントリの書式のテキスト形式の記述です。
archive_position()
示されたフィルタから読み込まれたバイトの数または示されたフィルタに書き込まれたバイトの数を返します。特に、 archive_position(a,( 0)) は、フォーマットハンドラによって読み込まれるか、または書き込まれたバイトの数を返し、一方、 archive_position(a,( -1)) は、アーカイブから読み込まれたか、またはアーカイブに書き込まれたバイトの数を返します。ここで、番号付けの詳細については、 archive_filter_count() を参照してください。
archive_set_error()
archive_errno() と archive_error_string() によって返される数値エラーコードとエラー記述を設定します。この関数は、システム特有のエラーコードとエラー記述を設定するために I/O コールバックで使用されるべきです。この関数は、printf のような書式文字列と引数を受け付けます。しかしながら、利用者は、次の printf 書式記述子のだけを使用するように確認すべきです: “%c”, “%d”, “%jd”, “%jo”, “%ju”, “%jx”, “%ld”, “%lo”, “%lu”, “%lx”, “%o”, “%u”, “%s”, “%x”, “%%”。フィールド幅記述子と他の printf 機能は、一様にサポートされず、使用するべきではありません。

歴史

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

作者

libarchive ライブラリは、 Tim Kientzle <kientzle@acm.org>によって書かれました。
February 2, 2012 FreeBSD