home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 October / VPR9910A.BIN / OLS / tar32053 / tar32053.exe / SDK / TAR_FMT.TXT < prev    next >
Text File  |  1999-05-23  |  6KB  |  187 lines

  1. ============================================================
  2.     TAR32.DLL フォーマット説明ファイル
  3.                            by 吉岡 恒夫
  4.                            email:QWF00133@niftyserve.or.jp
  5.                            date: 1998/05/31
  6. ============================================================
  7. (注)ソースコードなどを元に調べたものです。ひょっとしたら間違い
  8. があるかもしれません。
  9.  
  10. 目次:
  11. 1)Tar形式のフォーマット
  12. 2)Tar形式ヘッダー
  13. 3)GZIP形式
  14.  
  15. ------------------------------------------------------------------------------
  16. 1)Tar形式のフォーマット
  17.   Tar形式は以下のようにヘッダーとデータが交互に存在します。ヘッダーは512byteです。データ領域は512byteの倍数になるように0で詰められます。
  18.  
  19.     ----------
  20.     ヘッダー1
  21.     ----------
  22.     データ1
  23.     ----------
  24.     ヘッダー2
  25.     ----------
  26.     データ2
  27.     ----------
  28.     ・・・
  29.  
  30. -----------------------------------------------------------------------------
  31. 2)Tar形式ヘッダー
  32.   Tar形式のヘッダーは以下のような512byteの構造体です。エンディアンの影響を受けないように、2byte以上の数字は8進数文字列として格納されています。
  33.     
  34.     1:ファイル名        100byte
  35.     2:属性            8byte
  36.     3:ユーザーID        8byte
  37.     4:グループID        8byte
  38.     5:ファイルサイズ    12byte
  39.     6:更新日時        12byte
  40.     7:チェックサム        8byte
  41.     8:タイプ        1byte
  42.     9:リンク先ファイル名    100byte
  43.       10:マジックコード/バージョン番号    8byte(6byte+2byte)    
  44.     11:ユーザ名        32byte
  45.     12:グループ名        32byte
  46.     13:メジャーデバイス番号    8byte
  47.     14:マイナーデバイス番号    8byte
  48.         以下GNU Tar形式
  49.     15:最終アクセス時刻    12byte
  50.     16:ファイル作成時刻    12byte
  51.     17:オフセット        12byte
  52.  
  53.   1:ファイル名
  54.     ファイル名です。ファイル名が100byteを超える場合はここには、"././@LongLink"が入ります。この場合、実際のファイル名の長さは「5:ファイルサイズ」に設定され、実際のファイル名はデータ領域に入ります。
  55.   
  56.   2:属性
  57.       ファイルの属性(16bit)が8進数の文字列として格納されます。各ビットの意味は以下のとおりです。
  58.       
  59.       15bit    通常のファイル
  60.       14bit    ディレクトリ
  61.       13bit    キャラクター型スペシャルファイル
  62.       12bit    パイプ
  63.       11bit    set UID
  64.       10bit    set GID
  65.       9bit    sticky bit
  66.       8bit    オーナーの読み込み属性
  67.       7bit    オーナーの書き込み属性
  68.       6bit    オーナーの実行属性
  69.       5bit    グループの読み込み属性
  70.       4bit    グループの書き込み属性
  71.       3bit    グループの実行属性
  72.       2bit    他人の読み込み属性
  73.       1bit    他人の書き込み属性
  74.       0bit    他人の実行属性
  75.  
  76.   3:ユーザID
  77.       ファイル所有者のユーザID。0はrootをあらわす。
  78.   
  79.   4:グループID
  80.       ファイル所有者のグループID。0はrootをあらわす。
  81.   
  82.   5:ファイルサイズ
  83.       ファイルサイズを8進数の文字列であらわす。
  84.   
  85.   6:更新日時
  86.       更新日時を8進数文字列であらわす。
  87.   
  88.   7:チェックサム
  89.       ヘッダー(512byte)の16bitチェックサム。「7:チェックサム」自身はスペース(0x20)8文字で埋まっていると考えて計算する。
  90.  
  91.   8:タイプ
  92.       以下のいずれかが設定される。
  93.       
  94.       '0'(0x30)    通常のファイル
  95.       0        通常のファイル(V7フォーマット)
  96.       '1'(0x31)    link to previously dumped file
  97.       '2'(0x32)    シンボリックリンク
  98.       '3'(0x33)    キャラクタ型デバイス
  99.       '4'(0x34)    ブロック型デバイス
  100.       '5'(0x35)    ディレクトリ
  101.       '6'(0x36)    FIFOスペシャルファイル
  102.       '7'(0x37)    contiguous file
  103.       'D'        This is dir entry that contains the names of files
  104.               that were in the dir at the time the dump was made.
  105.       'K'        データ領域にリンク先ファイル名が格納されている。
  106.       'L'        データ領域にファイル名が格納されている。
  107.       'M'        This is the continuation of a file that began on
  108.               another volume.(マルチボリュームの2つめ以降?)
  109.       'N'        For storing filenames that didn't fit in 100
  110.               charactors.
  111.       'S'        This is for sparse files.
  112.       'V'        This file is a tape/volume header. Ignore it on
  113.               extraction.(マルチボリュームの1つめ?)
  114.   
  115.   9:リンク先ファイル名
  116.       「8:タイプ」が'1'や'2'(リンク)のときにリンク先ファイル名が設定されます。
  117.   10:マジックコード/バージョン番号
  118.       最初の6byteに"ustar"が、最後の2byteにバージョン番号"00"が入ります。GNU Tarの場合、8byteで"ustar  "が入ります。
  119.  
  120.   11:ユーザ名
  121.       ファイル所有者のユーザ名文字列が入ります。
  122.   
  123.   12:グループ名
  124.       ファイル所有者のグループ名文字列が入ります。
  125.  
  126.   13:メジャーデバイス番号
  127.       タイプが'3'か'4'(デバイスファイル)のときに設定される。
  128.   
  129.   14:マイナーデバイス番号
  130.       タイプが'3'か'4'(デバイスファイル)のときに設定される。
  131.  
  132.   15:最終アクセス時刻
  133.  
  134.   16:ファイル作成時刻
  135.  
  136.   17:オフセット
  137.     ?
  138. ---------------------------------------------------------------------------
  139. 3)GZIP形式
  140.   GZIP形式は以下のような構造になっています。数値はリトル・エンディアン(大きい桁が左)であらわされます。
  141.     1:マジックナンバー    2byte
  142.         0x1f, 0x8b(\037, \213)
  143.     2:圧縮法        1byte
  144.         deflate:    8(0x08)
  145.         他は予約
  146.     3:フラグ        1byte
  147.         bit0:    テキストファイル
  148.         bit1:    マルチパートgzipファイルの2つめ以降
  149.         bit2:    特別な領域が存在
  150.         bit3:    ファイル名が存在
  151.         bit4:    コメントが存在
  152.         bit5:    ファイルは暗号化されている
  153.     4:最終更新日時        4byte
  154.         Unix形式。ファイルでない場合は圧縮した時刻。
  155.     5:拡張フラグ        1byte
  156.     6:ファイルを作成したOSの種類    1byte
  157.         MSDOS:    0x00
  158.         OS/2:    0x06
  159.         Win32:    0x0b
  160.         VAX/VMS:0x02
  161.         AMIGA:    0x01
  162.         ATARI:    0x05
  163.         MACOS:    0x07
  164.         Prime/PRIMOS: 0x0F
  165.         TOPS20:    0x0a
  166.         UNIX:    0x03
  167.     7:オプションによるパート番号(2番目のパートが1である)    2byte又はなし
  168.         フラグのbit1がセットされているときのみ存在する。
  169.     8:オプションによる特別な領域の長さ            2byte又はなし
  170.         フラグのbit2がセットされているときのみ存在する。
  171.     9:オプションによる特別な領域                ?byte又はなし
  172.         「8:オプションによる特別な領域の長さ」だけ存在する。
  173.     10:オプションによる元のファイル名            ?byte又はなし
  174.         フラグのbit3がセットされているときのみ存在する。
  175.         NULL文字(0x00)で終わっている。
  176.     11:オプションによる元のファイル名のコメント        ?byte又はなし
  177.         フラグのbit4がセットされているときのみ存在する。
  178.         NULL文字(0x00)で終わっている。
  179.     12:オプションによる暗号化ヘッダ                12byte又はなし
  180.         フラグのbit5がセットされているときのみ存在する。
  181.     13:圧縮データ                        ?byte
  182.     14:32ビットCRC                        4byte
  183.     15:ファイルサイズ                    4byte
  184.         2^32以上のときは2^32で割ったあまり。
  185.  
  186. -------------------------------------------------------------------------
  187.