関数uncompress_gzip_data マニュアル

(The documentation of function uncompress_gzip_data)

Last Update: 2021/11/30


◆機能・用途(Purpose)

解凍後のデータサイズを指定せずにgzip形式で圧縮されたデータを解凍する。
Uncompress a data that was compressed in the gzip format, without specifying the uncompressed data size.


◆形式(Format)

#include <compress.h>
inline unsigned char ∗uncompress_gzip_data
(const int gzip_data_size,unsigned char ∗gzip_data)


◆引数(Arguments)

gzip_data_size 圧縮された(これから解凍したい)データのサイズ(バイト数)。
The size of the compressed data in bytes.
gzip_data 圧縮された(これから解凍したい)データ。
The compressed data (i.e., the data the user wants to uncompress).


◆戻り値(Return value)

gzip_dataを解凍したデータ。
The data obtained by uncompressing gzip_data.


◆使用例(Example)

unsigned char ∗original,∗uncompressed;
fread(original,100,sizeof(unsigned char),fp);
uncompressed=uncompress_gzip_data(100,original);


◆補足(Additional remark)

戻り値の配列要素数はgzip_data_sizeの10倍となる。 もしこの範囲に解凍後のデータが入りきらない場合は 20倍、30倍、…、90倍、100倍、200倍、300倍、…、900倍、1000倍、 と試し、100万倍まで試しても入りきらない場合は関数内でエラー終了となる。 なお、解凍後のデータの最後の10%にノンゼロのデータが存在する場合に 入りきらなかったと判断する。
The number of array components of the return value is 10 times the value of gzip_data_size. If the uncompressed data size exceeded this size, the uncompressed data sizes of 20 times, 30 times, …, 90 times, 100 times, 200 times, 300 times, …, 900 times, 1000 times, …, the value of gzip_data_size are tried. When the overflow occurred after trying 1,000,000 times the value of gzip_data_size, the program finishes as an error within the function. The function judges that an overflow occurred when a non-zero data appears in the last 10% of the uncompressed data.