home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 2003 August
/
VPR0308.ISO
/
OLS
/
TAR32_1-20001226-140023
/
tar32_1-20001226-140023.lzh
/
tar32_1
/
SDK
/
TAR_FMT.TXT
< prev
next >
Wrap
Text File
|
2000-12-26
|
6KB
|
187 lines
============================================================
TAR32.DLL フォーマット説明ファイル
by 吉岡 恒夫
email:QWF00133@niftyserve.or.jp
date: 1998/05/31
============================================================
(注)ソースコードなどを元に調べたものです。ひょっとしたら間違い
があるかもしれません。
目次:
1)Tar形式のフォーマット
2)Tar形式ヘッダー
3)GZIP形式
------------------------------------------------------------------------------
1)Tar形式のフォーマット
Tar形式は以下のようにヘッダーとデータが交互に存在します。ヘッダーは512byteです。データ領域は512byteの倍数になるように0で詰められます。
----------
ヘッダー1
----------
データ1
----------
ヘッダー2
----------
データ2
----------
・・・
-----------------------------------------------------------------------------
2)Tar形式ヘッダー
Tar形式のヘッダーは以下のような512byteの構造体です。エンディアンの影響を受けないように、2byte以上の数字は8進数文字列として格納されています。
1:ファイル名 100byte
2:属性 8byte
3:ユーザーID 8byte
4:グループID 8byte
5:ファイルサイズ 12byte
6:更新日時 12byte
7:チェックサム 8byte
8:タイプ 1byte
9:リンク先ファイル名 100byte
10:マジックコード/バージョン番号 8byte(6byte+2byte)
11:ユーザ名 32byte
12:グループ名 32byte
13:メジャーデバイス番号 8byte
14:マイナーデバイス番号 8byte
以下GNU Tar形式
15:最終アクセス時刻 12byte
16:ファイル作成時刻 12byte
17:オフセット 12byte
1:ファイル名
ファイル名です。ファイル名が100byteを超える場合はここには、"././@LongLink"が入ります。この場合、実際のファイル名の長さは「5:ファイルサイズ」に設定され、実際のファイル名はデータ領域に入ります。
2:属性
ファイルの属性(16bit)が8進数の文字列として格納されます。各ビットの意味は以下のとおりです。
15bit 通常のファイル
14bit ディレクトリ
13bit キャラクター型スペシャルファイル
12bit パイプ
11bit set UID
10bit set GID
9bit sticky bit
8bit オーナーの読み込み属性
7bit オーナーの書き込み属性
6bit オーナーの実行属性
5bit グループの読み込み属性
4bit グループの書き込み属性
3bit グループの実行属性
2bit 他人の読み込み属性
1bit 他人の書き込み属性
0bit 他人の実行属性
3:ユーザID
ファイル所有者のユーザID。0はrootをあらわす。
4:グループID
ファイル所有者のグループID。0はrootをあらわす。
5:ファイルサイズ
ファイルサイズを8進数の文字列であらわす。
6:更新日時
更新日時を8進数文字列であらわす。
7:チェックサム
ヘッダー(512byte)の16bitチェックサム。「7:チェックサム」自身はスペース(0x20)8文字で埋まっていると考えて計算する。
8:タイプ
以下のいずれかが設定される。
'0'(0x30) 通常のファイル
0 通常のファイル(V7フォーマット)
'1'(0x31) link to previously dumped file
'2'(0x32) シンボリックリンク
'3'(0x33) キャラクタ型デバイス
'4'(0x34) ブロック型デバイス
'5'(0x35) ディレクトリ
'6'(0x36) FIFOスペシャルファイル
'7'(0x37) contiguous file
'D' This is dir entry that contains the names of files
that were in the dir at the time the dump was made.
'K' データ領域にリンク先ファイル名が格納されている。
'L' データ領域にファイル名が格納されている。
'M' This is the continuation of a file that began on
another volume.(マルチボリュームの2つめ以降?)
'N' For storing filenames that didn't fit in 100
charactors.
'S' This is for sparse files.
'V' This file is a tape/volume header. Ignore it on
extraction.(マルチボリュームの1つめ?)
9:リンク先ファイル名
「8:タイプ」が'1'や'2'(リンク)のときにリンク先ファイル名が設定されます。
10:マジックコード/バージョン番号
最初の6byteに"ustar"が、最後の2byteにバージョン番号"00"が入ります。GNU Tarの場合、8byteで"ustar "が入ります。
11:ユーザ名
ファイル所有者のユーザ名文字列が入ります。
12:グループ名
ファイル所有者のグループ名文字列が入ります。
13:メジャーデバイス番号
タイプが'3'か'4'(デバイスファイル)のときに設定される。
14:マイナーデバイス番号
タイプが'3'か'4'(デバイスファイル)のときに設定される。
15:最終アクセス時刻
16:ファイル作成時刻
17:オフセット
?
---------------------------------------------------------------------------
3)GZIP形式
GZIP形式は以下のような構造になっています。数値はリトル・エンディアン(大きい桁が左)であらわされます。
1:マジックナンバー 2byte
0x1f, 0x8b(\037, \213)
2:圧縮法 1byte
deflate: 8(0x08)
他は予約
3:フラグ 1byte
bit0: テキストファイル
bit1: マルチパートgzipファイルの2つめ以降
bit2: 特別な領域が存在
bit3: ファイル名が存在
bit4: コメントが存在
bit5: ファイルは暗号化されている
4:最終更新日時 4byte
Unix形式。ファイルでない場合は圧縮した時刻。
5:拡張フラグ 1byte
6:ファイルを作成したOSの種類 1byte
MSDOS: 0x00
OS/2: 0x06
Win32: 0x0b
VAX/VMS:0x02
AMIGA: 0x01
ATARI: 0x05
MACOS: 0x07
Prime/PRIMOS: 0x0F
TOPS20: 0x0a
UNIX: 0x03
7:オプションによるパート番号(2番目のパートが1である) 2byte又はなし
フラグのbit1がセットされているときのみ存在する。
8:オプションによる特別な領域の長さ 2byte又はなし
フラグのbit2がセットされているときのみ存在する。
9:オプションによる特別な領域 ?byte又はなし
「8:オプションによる特別な領域の長さ」だけ存在する。
10:オプションによる元のファイル名 ?byte又はなし
フラグのbit3がセットされているときのみ存在する。
NULL文字(0x00)で終わっている。
11:オプションによる元のファイル名のコメント ?byte又はなし
フラグのbit4がセットされているときのみ存在する。
NULL文字(0x00)で終わっている。
12:オプションによる暗号化ヘッダ 12byte又はなし
フラグのbit5がセットされているときのみ存在する。
13:圧縮データ ?byte
14:32ビットCRC 4byte
15:ファイルサイズ 4byte
2^32以上のときは2^32で割ったあまり。
-------------------------------------------------------------------------