2 gzip Compression and File Creation
The file/gzip library provides
utilities to create archive files in gzip format, or simply to
compress data using the pkzip “deflate” method.
procedure
in-file : path-string?
out-file : path-string? = (path-add-extension in-file ".gz" #".")
Compresses data to the same format as the gzip utility, writing
the compressed data directly to a file. The in-file argument
is the name of the file to compress. If the file named by
out-file exists, it will be overwritten.
Changed in version 6.8.0.2 of package base: Changed default expression of out-file to use path-add-extension instead of string-append.
procedure
(gzip-through-ports in out orig-filename timestamp) → void? in : input-port? out : output-port? orig-filename : (or/c string? #f) timestamp : exact-integer?
Reads the port in for data and compresses it to out,
outputting the same format as the gzip utility. The
orig-filename string is embedded in this output;
orig-filename can be #f to omit the filename from
the compressed stream. The timestamp number is also embedded
in the output stream, as the modification date of the original file
(in Unix seconds, as file-or-directory-modify-seconds would
report on Unix).
procedure
(deflate in out) →
exact-nonnegative-integer? exact-nonnegative-integer? exact-nonnegative-integer? in : input-port? out : output-port?
Writes pkzip-format “deflated” data to the port out,
compressing data from the port in. The data in a file
created by gzip uses this format (preceded with header
information).
The result is three values: the number of bytes read from in, the number of bytes written to out, and a cyclic redundancy check (CRC) value for the input.