ファイルデータの前後に
OS依存のデータを添付する形式(MacBinary等)の
ファイルデータ(Macで言えばデータフォーク)の
位置を示すために使用する。
レベル3ヘッダと共に使用されるはずだったヘッダの一つ。
特に必要が無ければ使用しないほうが良いだろう。
また、より古い情報では、カプセルヘッダの
拡張ヘッダ識別子は 0xFC だった。
offset | カプセルヘッダ level 3 |
内容 |
00 | 拡張ヘッダ識別子 |
拡張ヘッダを特定するための識別子。 カプセルヘッダでは 0x7D。 |
01 | カプセルヘッダサイズ(LL) | 圧縮データ内で ファイル本体の前に添付されている OS依存のデータのサイズ。 |
02 | カプセルヘッダサイズ(LH) | |
03 | カプセルヘッダサイズ(HL) | |
04 | カプセルヘッダサイズ(HH) | |
05 | ファイルサイズ(LL) |
圧縮データ内の ファイル本体(Macで言うところのデータフォーク)のサイズ。 ファイル本体の後に 付加されるOS依存のデータのサイズを特定するために必要となる。 |
06 | ファイルサイズ(LH) | |
07 | ファイルサイズ(HL) | |
08 | ファイルサイズ(HH) | |
09 | 次拡張ヘッダサイズ(LL) |
続く拡張ヘッダのサイズ。 続く拡張ヘッダが無ければ 0。 |
10 | 次拡張ヘッダサイズ(LH) | |
11 | 次拡張ヘッダサイズ(HL) | |
12 | 次拡張ヘッダサイズ(HH) |
offset | 拡張属性ヘッダ level 3 OS/2(平松氏) |
内容 |
00 | 拡張ヘッダ識別子 |
拡張ヘッダを特定するための識別子。 拡張属性ヘッダでは 0x7E。 |
01 | 拡張属性の種類 |
拡張属性の種類。 この部分は実装依存との事で、 例えば OS/2 と Windows では同じ値を違う意味に 解釈しても良いらしい。 OS/2 の場合は
|
02 | OS名の長さ | 続くOS名の長さ。 |
03 | OS名(1) |
OS名を格納する。 基本ヘッダの OS識別子では識別できないような違い、 特に Unix での Solaris, Linux, *BSD, HP-UX それぞれに実装が違うため それらを区別するために用いられるらしい。 |
?? | … | |
02+長さ | OS名(終端) | |
03+長さ | 拡張属性(1) |
拡張属性を格納する。 Nifty の資料によれば構造体のイメージをそのまま出力してよいと書かれている。 |
?? | … | |
サイズ-5 | 拡張属性(終端) | |
サイズ-4 | 次拡張ヘッダサイズ(LL) |
続く拡張ヘッダのサイズ。 続く拡張ヘッダが無ければ 0。 |
サイズ-3 | 次拡張ヘッダサイズ(LH) | |
サイズ-2 | 次拡張ヘッダサイズ(HL) | |
サイズ-1 | 次拡張ヘッダサイズ(HH) |
UNIX と MS-DOSのファイルに関する属性を一括して格納するために使用する。
レベル3ヘッダと共に使用されるはずだったヘッダの一つ。
現在、使用しているのは おそらく LHA for OS/2 のみだと思われる。
このヘッダも特に必要が無ければ使用しないほうが良いだろう。
LHA for OS/2 の資料と、UNLHA32.DLLの資料では内容が違う。
これは発案者である平松氏が OS/2 版の資料に書いたもので、
提案された時期としては こちらの方が新しい。 |
offset | レベル3新属性ヘッダ(1) level 3 OS/2 |
内容 |
00 | 拡張ヘッダ識別子 |
拡張ヘッダを特定するための識別子。 レベル3新属性ヘッダ(1)では 0x7F。 |
01 | DOSファイル属性(L) |
MS-DOSのファイル属性。 |
02 | DOSファイル属性(H) | |
03 | ファイル許可属性(L) |
Unixのファイル許可属性。 |
04 | ファイル許可属性(H) | |
05 | グループ識別子(L) |
ファイルへのアクセス権を与えられたグループの識別子。 |
06 | グループ識別子(H) | |
07 | ユーザ識別子(L) |
ファイルの所有者のユーザ識別子。 |
08 | ユーザ識別子(H) | |
09 | ファイル作成日時(LL) |
ファイルの作成日時。 形式は time_t を使用する。 |
10 | ファイル作成日時(LH) | |
11 | ファイル作成日時(HL) | |
12 | ファイル作成日時(HH) | |
13 | 最終アクセス日時(LL) |
最後にファイルにアクセスした日時。 形式は time_t を使用する。 |
14 | 最終アクセス日時(LH) | |
15 | 最終アクセス日時(HL) | |
16 | 最終アクセス日時(HH) | |
17 | 次拡張ヘッダサイズ(LL) |
続く拡張ヘッダのサイズ。 続く拡張ヘッダが無ければ 0。 |
18 | 次拡張ヘッダサイズ(LH) | |
19 | 次拡張ヘッダサイズ(HL) | |
20 | 次拡張ヘッダサイズ(HH) |
拡張ヘッダ識別子 | 辞書サイズ |
0xC4 | 4096 |
0xC5 | 8192 |
0xC6 | 16384 |
0xC7 | 32768 |
0xC8 | 65536 |
offset | 圧縮コメントヘッダ level 1 or 2 |
内容 |
00 | 拡張ヘッダ識別子 |
拡張ヘッダを特定するための識別子。 辞書サイズ毎に定められた識別子を使用する。 |
01 | 圧縮されたコメント(1) |
圧縮されたコメントのデータ。
使用する圧縮法は "-lh5-" の系統で辞書サイズは拡張ヘッダ識別子で識別する。 |
?? | … | |
サイズ-3 | 圧縮されたコメント(終端) | |
サイズ-2 | 次拡張ヘッダサイズ(L) |
続く拡張ヘッダのサイズ。 続く拡張ヘッダが無ければ 0。 |
サイズ-1 | 次拡張ヘッダサイズ(H) |
offset | レベル3新属性ヘッダ(2) level 3 UNLHA |
内容 |
00 | 拡張ヘッダ識別子 |
拡張ヘッダを特定するための識別子。 レベル3新属性ヘッダ(2)では 0xFF。 |
01 | ファイル許可属性(LL) |
Unixのファイル許可属性。 LHa for Unix の管理者の一人である岡本氏によれば 上位2バイトのみ使用するとの事だが、 4バイトを リトルエンディアンで読み込んだ上で 上位2バイト(offset 03,04)を使用するのか、単に先頭に近い方から 上位2バイト(offset 01,02)を使用するのかは不明。 |
02 | ファイル許可属性(LH) | |
03 | ファイル許可属性(HL) | |
04 | ファイル許可属性(HH) | |
05 | グループ識別子(LL) |
ファイルへのアクセス権を与えられたグループの識別子。 LHa for Unix の管理者の一人である岡本氏によれば 上位2バイトのみ使用するとの事だが、 4バイトを リトルエンディアンで読み込んだ上で 上位2バイト(offset 07,08)を使用するのか、単に先頭に近い方から 上位2バイト(offset 05,06)を使用するのかは不明。 |
06 | グループ識別子(LH) | |
07 | グループ識別子(HL) | |
08 | グループ識別子(HH) | |
09 | ユーザ識別子(LL) |
ファイルの所有者のユーザ識別子。 LHa for Unix の管理者の一人である岡本氏によれば 上位2バイトのみ使用するとの事だが、 4バイトを リトルエンディアンで読み込んだ上で 上位2バイト(offset 11,12)を使用するのか、単に先頭に近い方から 上位2バイト(offset 09,10)を使用するのかは不明。 |
10 | ユーザ識別子(LH) | |
11 | ユーザ識別子(HL) | |
12 | ユーザ識別子(HH) | |
13 | ファイル作成日時(LL) |
ファイルの作成日時。 形式は time_t を使用する。 |
14 | ファイル作成日時(LH) | |
15 | ファイル作成日時(HL) | |
16 | ファイル作成日時(HH) | |
17 | 最終アクセス日時(LL) |
最後にファイルにアクセスした日時。 形式は time_t を使用する。 |
18 | 最終アクセス日時(LH) | |
19 | 最終アクセス日時(HL) | |
20 | 最終アクセス日時(HH) | |
21 | 次拡張ヘッダサイズ(LL) |
続く拡張ヘッダのサイズ。 続く拡張ヘッダが無ければ 0。 |
22 | 次拡張ヘッダサイズ(LH) | |
23 | 次拡張ヘッダサイズ(HL) | |
24 | 次拡張ヘッダサイズ(HH) |