| 1: 2014-09-18 (木) 00:25:47 iseki |
現: 2014-09-18 (木) 00:45:13 iseki |
||
|---|---|---|---|
| Line 2: | Line 2: | ||
| - ファイル圧縮,伸長の実装 | - ファイル圧縮,伸長の実装 | ||
| - アルゴリズムには deflateを使用. | - アルゴリズムには deflateを使用. | ||
| + | - RFC1952 http://www.ietf.org/rfc/rfc1952.txt | ||
| + | - RFC1952 日本語解説: http://www.futomi.com/lecture/japanese/rfc1952.html#s2_2 | ||
| + | #br | ||
| + | *** gzip と deflate [#b19da100] | ||
| + | - gzip はアルゴリズムに deflate を使用しているが,データとしての構造は一致しない(場合がある) | ||
| + | -- deflate = deflate header + データ | ||
| + | --- deflate herder: 0x78 0xda の2Byte固定 | ||
| + | -- gzip = gzip header + データ + gzip tailer | ||
| + | --- gzip header, tailer の構造の詳細については 上記RFCを参照 | ||
| + | --- 最も単純な gzip header = 0x1f 0x8b 0x08 0x00 0x00 0x00 0x00 0x00 0x00 0xff | ||
| + | --- 最も単純かつ不正な gzip tailer = 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 | ||
| + | #br | ||
| + | |||
| + | *** deflate から gzip へのデータ変換 [#da2e0d0a] | ||
| + | - deflate から gzip のデータ構造に変換するには,deflate の先頭2Byte(0x78 0xda) を取り除いて,gzip の header と tailer を付加する. | ||
| + | -- しかしながら,gzip の tailer は CRC と 伸長(解凍)後のデータ長であるので,deflate のデータから計算するのは,困難. | ||
| + | -- tailer を適当に 0x00 0x00 0x00 0x00 0x00 0x00 0x00 x00 とすると.gunzip ではデータエラーを起して解凍できない. | ||
| + | -- zcat でもエラーは表示するが,一応解凍は可能. | ||
| + | #br | ||
- gzip のバックアップ一覧
- gzip のバックアップ差分(No. All)
- 1: 2014-09-18 (木) 00:25:47 iseki
- 現: 2014-09-18 (木) 00:45:13 iseki
