<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<link rel="stylesheet" href="../nih-man.css" type="text/css" media="all"/>
<title>ZIP_SET_FILE_COMPRESSION(3)</title>
</head>
<body>
<table class="head">
<tr>
<td class="head-ltitle">ZIP_SET_FILE_COMPRESSION(3)</td>
<td class="head-vol">Library Functions Manual</td>
<td class="head-rtitle">ZIP_SET_FILE_COMPRESSION(3)</td>
</tr>
</table>
<div class="manual-text">
<section class="Sh">
<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<p class="Pp"><code class="Nm">zip_set_file_compression</code> —
<span class="Nd">set compression method for file in zip</span></p>
</section>
<section class="Sh">
<h1 class="Sh" id="LIBRARY"><a class="permalink" href="#LIBRARY">LIBRARY</a></h1>
<p class="Pp">libzip (-lzip)</p>
</section>
<section class="Sh">
<h1 class="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<p class="Pp"><code class="In">#include
<<a class="In">zip.h</a>></code></p>
<p class="Pp"><var class="Ft">int</var>
<br/>
<code class="Fn">zip_set_file_compression</code>(<var class="Fa" style="white-space: nowrap;">zip_t
*archive</var>, <var class="Fa" style="white-space: nowrap;">zip_uint64_t
index</var>, <var class="Fa" style="white-space: nowrap;">zip_int32_t
comp</var>, <var class="Fa" style="white-space: nowrap;">zip_uint32_t
comp_flags</var>);</p>
</section>
<section class="Sh">
<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
<p class="Pp">The
<a class="permalink" href="#zip_set_file_compression"><code class="Fn" id="zip_set_file_compression">zip_set_file_compression</code></a>()
function sets the compression method for the file at position
<var class="Ar">index</var> in the zip archive to <var class="Ar">comp</var>
with the compression method specific <var class="Ar">comp_flags</var>. The
<var class="Ar">comp</var> is the same as returned by
<a class="Xr" href="zip_stat.html">zip_stat(3)</a>. For the
<var class="Ar">comp</var> argument, currently only the following values are
supported:</p>
<dl class="Bl-tag">
<dt id="ZIP_CM_DEFAULT"><a class="permalink" href="#ZIP_CM_DEFAULT"><code class="Dv">ZIP_CM_DEFAULT</code></a></dt>
<dd>default compression; currently the same as
<code class="Dv">ZIP_CM_DEFLATE</code>, but <var class="Ar">flags</var>
are ignored.</dd>
<dt id="ZIP_CM_STORE"><a class="permalink" href="#ZIP_CM_STORE"><code class="Dv">ZIP_CM_STORE</code></a></dt>
<dd>Store the file uncompressed.</dd>
<dt id="ZIP_CM_BZIP2"><a class="permalink" href="#ZIP_CM_BZIP2"><code class="Dv">ZIP_CM_BZIP2</code></a></dt>
<dd>Compress the file using the <a class="Xr" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/bzip2.html">bzip2(1)</a>
algorithm.</dd>
<dt id="ZIP_CM_DEFLATE"><a class="permalink" href="#ZIP_CM_DEFLATE"><code class="Dv">ZIP_CM_DEFLATE</code></a></dt>
<dd>Deflate the file with the <a class="Xr" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/zlib.html">zlib(3)</a>
algorithm and default options.</dd>
<dt id="ZIP_CM_XZ"><a class="permalink" href="#ZIP_CM_XZ"><code class="Dv">ZIP_CM_XZ</code></a></dt>
<dd>Use the <a class="Xr" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/xz.html">xz(1)</a> algorithm for
compression</dd>
<dt id="ZIP_CM_ZSTD"><a class="permalink" href="#ZIP_CM_ZSTD"><code class="Dv">ZIP_CM_ZSTD</code></a></dt>
<dd>Use the <a class="Xr" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/zstd.html">zstd(1)</a> algorithm for
compression</dd>
</dl>
<p class="Pp" id="NOTE"><a class="permalink" href="#NOTE"><i class="Em">NOTE</i></a>:
Only the deflate and store methods can be assumed to be universally
supported.</p>
<p class="Pp">The <var class="Ar">comp_flags</var> argument defines the
compression level. This value is dependent on the compression algorithm. In
general, lower numbers mean faster de/compression and higher numbers mean
slower de/compression. For <code class="Dv">ZIP_CM_BZIP</code>,
<code class="Dv">ZIP_CM_DEFLATE</code>, and
<code class="Dv">ZIP_CM_XZ</code> 1 is the fastest compression and 9 the
best, 0 chooses the default. For <code class="Dv">ZIP_CM_ZSTD</code>
possible values are
<a class="Xr" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/ZSTD_minCLevel.html">ZSTD_minCLevel(3)</a> to
<a class="Xr" href="http://pubs.opengroup.org/onlinepubs/9699919799/functions/ZSTD_maxCLevel.html">ZSTD_maxCLevel(3)</a>; negative
values must be cast to <var class="Ft">zip_uint32_t</var>.</p>
<p class="Pp">Further compression method specific flags might be added over
time.</p>
<p class="Pp">The current compression method for a file in a zip archive can be
determined using <a class="Xr" href="zip_stat.html">zip_stat(3)</a>.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
VALUES</a></h1>
<p class="Pp">Upon successful completion 0 is returned. Otherwise, -1 is
returned and the error information in <var class="Ar">archive</var> is set
to indicate the error.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="ERRORS"><a class="permalink" href="#ERRORS">ERRORS</a></h1>
<p class="Pp"><code class="Fn">zip_set_file_compression</code>() fails if:</p>
<dl class="Bl-tag">
<dt id="ZIP_ER_COMPNOTSUPP">[<a class="permalink" href="#ZIP_ER_COMPNOTSUPP"><code class="Er">ZIP_ER_COMPNOTSUPP</code></a>]</dt>
<dd>Unsupported compression method requested.</dd>
<dt id="ZIP_ER_INVAL">[<a class="permalink" href="#ZIP_ER_INVAL"><code class="Er">ZIP_ER_INVAL</code></a>]</dt>
<dd><var class="Ar">index</var> is not a valid file index in
<var class="Ar">archive</var>, or the argument combination is
invalid.</dd>
<dt id="ZIP_ER_RDONLY">[<a class="permalink" href="#ZIP_ER_RDONLY"><code class="Er">ZIP_ER_RDONLY</code></a>]</dt>
<dd>Read-only zip file, no changes allowed.</dd>
</dl>
</section>
<section class="Sh">
<h1 class="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
ALSO</a></h1>
<p class="Pp"><a class="Xr" href="libzip.html">libzip(3)</a>,
<a class="Xr" href="zip_compression_method_supported.html">zip_compression_method_supported(3)</a>,
<a class="Xr" href="zip_stat.html">zip_stat(3)</a></p>
</section>
<section class="Sh">
<h1 class="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<p class="Pp"><code class="Fn">zip_set_file_compression</code>() was added in
libzip 0.11.</p>
</section>
<section class="Sh">
<h1 class="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<p class="Pp"><span class="An">Dieter Baron</span>
<<a class="Mt" href="mailto:dillo@nih.at">dillo@nih.at</a>> and
<span class="An">Thomas Klausner</span>
<<a class="Mt" href="mailto:wiz@gatalith.at">wiz@gatalith.at</a>></p>
</section>
</div>
<table class="foot">
<tr>
<td class="foot-date">February 2, 2023</td>
<td class="foot-os">NiH</td>
</tr>
</table>
</body>
</html>