<!DOCTYPE html>
<html>
<!-- This is an automatically generated file.  Do not edit.
   zip_source_tell_write.mdoc -- report current write offset in source
   Copyright (C) 2014-2017 Dieter Baron and Thomas Klausner
  
   This file is part of libzip, a library to manipulate ZIP archives.
   The authors can be contacted at <libzip@nih.at>
  
   Redistribution and use in source and binary forms, with or without
   modification, are permitted provided that the following conditions
   are met:
   1. Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.
   2. Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in
      the documentation and/or other materials provided with the
      distribution.
   3. The names of the authors may not be used to endorse or promote
      products derived from this software without specific prior
      written permission.
  
   THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
   OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
   WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
   DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
   GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
   IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
   OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
   IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
   -->
<head>
  <meta charset="utf-8"/>
  <link rel="stylesheet" href="../nih-man.css" type="text/css" media="all"/>
  <title>ZIP_SOURCE_TELL_WRITE(3)</title>
</head>
<body>
<table class="head">
  <tr>
    <td class="head-ltitle">ZIP_SOURCE_TELL_WRITE(3)</td>
    <td class="head-vol">Library Functions Manual</td>
    <td class="head-rtitle">ZIP_SOURCE_TELL_WRITE(3)</td>
  </tr>
</table>
<div class="manual-text">
<h1 class="Sh" title="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
<code class="Nm" title="Nm">zip_source_tell_write</code> &#x2014;
<div class="Nd" title="Nd">report current write offset in zip source</div>
<h1 class="Sh" title="Sh" id="LIBRARY"><a class="permalink" href="#LIBRARY">LIBRARY</a></h1>
libzip (-lzip)
<h1 class="Sh" title="Sh" id="SYNOPSIS"><a class="permalink" href="#SYNOPSIS">SYNOPSIS</a></h1>
<code class="In" title="In">#include
  &lt;<a class="In" title="In">zip.h</a>&gt;</code>
<div class="Pp"></div>
<var class="Ft" title="Ft">zip_int64_t</var>
<br/>
<code class="Fn" title="Fn">zip_source_tell_write</code>(<var class="Fa" title="Fa" style="white-space: nowrap;">zip_source_t
  *source</var>);
<h1 class="Sh" title="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
The function <code class="Fn" title="Fn">zip_source_tell_write</code>() returns
  the current write offset for <var class="Fa" title="Fa">source</var>. The
  return value can be passed to
  <a class="Xr" title="Xr" href="zip_source_seek_write.html">zip_source_seek_write(3)</a>
  with <var class="Ar" title="Ar">whence</var> set to
  <code class="Dv" title="Dv">SEEK_SET</code> to return to the same location in
  the source.
<h1 class="Sh" title="Sh" id="RETURN_VALUES"><a class="permalink" href="#RETURN_VALUES">RETURN
  VALUES</a></h1>
Upon successful completion the current write offset is returned. Otherwise, -1
  is returned and the error information in
  <var class="Ar" title="Ar">source</var> is set to indicate the error.
<h1 class="Sh" title="Sh" id="SEE_ALSO"><a class="permalink" href="#SEE_ALSO">SEE
  ALSO</a></h1>
<a class="Xr" title="Xr" href="libzip.html">libzip(3)</a>,
  <a class="Xr" title="Xr" href="zip_source.html">zip_source(3)</a>,
  <a class="Xr" title="Xr" href="zip_source_begin_write.html">zip_source_begin_write(3)</a>,
  <a class="Xr" title="Xr" href="zip_source_commit_write.html">zip_source_commit_write(3)</a>,
  <a class="Xr" title="Xr" href="zip_source_rollback_write.html">zip_source_rollback_write(3)</a>,
  <a class="Xr" title="Xr" href="zip_source_tell.html">zip_source_tell(3)</a>,
  <a class="Xr" title="Xr" href="zip_source_write.html">zip_source_write(3)</a>
<h1 class="Sh" title="Sh" id="HISTORY"><a class="permalink" href="#HISTORY">HISTORY</a></h1>
<code class="Fn" title="Fn">zip_source_tell_write</code>() was added in libzip
  1.0.
<h1 class="Sh" title="Sh" id="AUTHORS"><a class="permalink" href="#AUTHORS">AUTHORS</a></h1>
<span class="An" title="An">Dieter Baron</span>
  &lt;<a class="Mt" title="Mt" href="mailto:dillo@nih.at">dillo@nih.at</a>&gt;
  and <span class="An" title="An">Thomas Klausner</span>
  &lt;<a class="Mt" title="Mt" href="mailto:tk@giga.or.at">tk@giga.or.at</a>&gt;</div>
<table class="foot">
  <tr>
    <td class="foot-date">December 18, 2017</td>
    <td class="foot-os">NetBSD 8.99.16</td>
  </tr>
</table>
</body>
</html>
