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

名称

archive_entry_clear, archive_entry_clone, archive_entry_free, archive_entry_new, — アーカイブエントリ記述を管理するための関数

ライブラリ

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

書式

#include < archive_entry.h>

struct archive_entry *
archive_entry_clear( struct archive_entry *);

struct archive_entry *
archive_entry_clone( struct archive_entry *);

void
archive_entry_free( struct archive_entry *);

struct archive_entry *
archive_entry_new( void);

解説

これらの関数は、アーカイブ中のエントリを表すデータオブジェクトを作成して操作します。利用者は、 struct stat の強力なバージョンとして struct archive_entry を考えることができます: それは、 struct stat の全てを含み、関連パス名、テキスト形式のグループ名とユーザ名などが追加されています。これらのオブジェクトは、アーカイブ中の特定のエントリに関連しているメタデータを表すために libarchive(3) によって使用されます。

作成と破壊

archive_entry オブジェクトを割り付け、破壊し、クリアし、コピーするための関数があります:
archive_entry_clear()
オブジェクトを消し、すべての内部フィールドを新たに作成されたオブジェクトと同じ状態にリセットします。利用者がヒープをスラッシングしないですぐにオブジェクトをリサイクル (再利用) できるように提供されています。
archive_entry_clone()
大規模なコピー操作。すべてのテキストフィールドがコピーされます。
archive_entry_free()
struct archive_entry オブジェクトを開放します。
archive_entry_new()
空白の struct archive_entry オブジェクトを割り付けて、返します。

関数グループ

特に多くの関数のために、目的によってグループ化されたマニュアルページでアクセス機構 (accessor) 関数を見つけることができます。
archive_entry_acl(3)
アクセス制御リスト操作
archive_entry_paths(3)
パス名操作
archive_entry_perms(3)
ユーザ、グループとモード操作
archive_entry_stat(3)
他のグループにない関数で、 struct stat へのコピー/からのコピーします。
archive_entry_time(3)
時間フィールド操作

ほとんどの関数は、オブジェクト中にエントリを設定するか、または読み込みます。そのような関数には、次の形式の 1 つがあります:

archive_entry_set_XXXX()
提供されたデータをオブジェクトに格納します。特に、文字列において、参照された文字列ではなくポインタが格納されます。
archive_entry_copy_XXXX()
参照されたデータがオブジェクトにコピーされることを除いて、上記と同様です。
archive_entry_XXXX()
指定されたデータを返します。文字列の場合には、文字列へのコスト制限があるポインタが返されます。

文字列データは、ワイド文字列または通常の char 文字列として設定すうか、またあhアクセスできます。ワイド文字列を使用する関数は、 _w の接尾辞が付けられています。これらは、同じデータの異なった表現であることに注意してください: 例えば、利用者が普通の文字列を格納し、ワイド文字列の対応で読み込むなら、オブジェクトは、現在のロケールを使用して透過的に形式 (フォーマット) を変換します。同様に、利用者がワイド文字列を格納し、次に同じデータに対して通常の文字列で格納するなら、以前に設定されたワイド文字列は、新しいデータを有効として破棄されます。

歴史

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

作者

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