HEX
Server: nginx/1.24.0
System: Linux DGT-WORDPRESS-VM-SERVER 6.14.0-1017-azure #17~24.04.1-Ubuntu SMP Mon Dec 1 20:10:50 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 8.4.12
Disabled: NONE
Upload Files
File: //usr/share/doc/libexif-dev/libexif-api.html/exif-mem_8h.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>EXIF library (libexif) API: libexif/exif-mem.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr id="projectrow">
  <td id="projectalign">
   <div id="projectname">EXIF library (libexif) API<span id="projectnumber">&#160;0.6.24</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function(){initNavTree('exif-mem_8h.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle"><div class="title">exif-mem.h File Reference</div></div>
</div><!--header-->
<div class="contents">

<p>Define the ExifMem data type and the associated functions.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;<a class="el" href="exif-utils_8h_source.html">libexif/exif-utils.h</a>&gt;</code><br />
</div>
<p><a href="exif-mem_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:a983dbcdc43d515ef6c7dc003240ef427" id="r_a983dbcdc43d515ef6c7dc003240ef427"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exif-mem_8h.html#a983dbcdc43d515ef6c7dc003240ef427">ExifMemAllocFunc</a>) (<a class="el" href="exif-utils_8h.html#a34c5d7765ab2e6dec8308c5127a10afa">ExifLong</a> s)</td></tr>
<tr class="memdesc:a983dbcdc43d515ef6c7dc003240ef427"><td class="mdescLeft">&#160;</td><td class="mdescRight">Should work like calloc()  <br /></td></tr>
<tr class="separator:a983dbcdc43d515ef6c7dc003240ef427"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea07644ea9dc97d5572d85ef03827f65" id="r_aea07644ea9dc97d5572d85ef03827f65"><td class="memItemLeft" align="right" valign="top">typedef void *(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exif-mem_8h.html#aea07644ea9dc97d5572d85ef03827f65">ExifMemReallocFunc</a>) (void *p, <a class="el" href="exif-utils_8h.html#a34c5d7765ab2e6dec8308c5127a10afa">ExifLong</a> s)</td></tr>
<tr class="memdesc:aea07644ea9dc97d5572d85ef03827f65"><td class="mdescLeft">&#160;</td><td class="mdescRight">Should work like realloc()  <br /></td></tr>
<tr class="separator:aea07644ea9dc97d5572d85ef03827f65"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a82bf96c57cc83eabdba1ad1ad0d69263" id="r_a82bf96c57cc83eabdba1ad1ad0d69263"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exif-mem_8h.html#a82bf96c57cc83eabdba1ad1ad0d69263">ExifMemFreeFunc</a>) (void *p)</td></tr>
<tr class="memdesc:a82bf96c57cc83eabdba1ad1ad0d69263"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free method for ExifMem.  <br /></td></tr>
<tr class="separator:a82bf96c57cc83eabdba1ad1ad0d69263"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aab8aacbc0ed6f11a1f022b7b1bf4750e" id="r_aab8aacbc0ed6f11a1f022b7b1bf4750e"><td class="memItemLeft" align="right" valign="top"><a id="aab8aacbc0ed6f11a1f022b7b1bf4750e" name="aab8aacbc0ed6f11a1f022b7b1bf4750e"></a>
typedef struct _ExifMem&#160;</td><td class="memItemRight" valign="bottom"><b>ExifMem</b></td></tr>
<tr class="memdesc:aab8aacbc0ed6f11a1f022b7b1bf4750e"><td class="mdescLeft">&#160;</td><td class="mdescRight">ExifMem define a memory allocator. <br /></td></tr>
<tr class="separator:aab8aacbc0ed6f11a1f022b7b1bf4750e"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ad56b5b9868ea77e681a903513c3b55f3" id="r_ad56b5b9868ea77e681a903513c3b55f3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exif-mem_8h.html#ad56b5b9868ea77e681a903513c3b55f3">exif_mem_new</a> (<a class="el" href="exif-mem_8h.html#a983dbcdc43d515ef6c7dc003240ef427">ExifMemAllocFunc</a> a, <a class="el" href="exif-mem_8h.html#aea07644ea9dc97d5572d85ef03827f65">ExifMemReallocFunc</a> r, <a class="el" href="exif-mem_8h.html#a82bf96c57cc83eabdba1ad1ad0d69263">ExifMemFreeFunc</a> f)</td></tr>
<tr class="memdesc:ad56b5b9868ea77e681a903513c3b55f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new ExifMem.  <br /></td></tr>
<tr class="separator:ad56b5b9868ea77e681a903513c3b55f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acedafabd958c9846ea3f908135715dcf" id="r_acedafabd958c9846ea3f908135715dcf"><td class="memItemLeft" align="right" valign="top"><a id="acedafabd958c9846ea3f908135715dcf" name="acedafabd958c9846ea3f908135715dcf"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>exif_mem_ref</b> (<a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> *)</td></tr>
<tr class="memdesc:acedafabd958c9846ea3f908135715dcf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Refcount an ExifMem. <br /></td></tr>
<tr class="separator:acedafabd958c9846ea3f908135715dcf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adabd1345e1172ce379658cecfd3f7d70" id="r_adabd1345e1172ce379658cecfd3f7d70"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exif-mem_8h.html#adabd1345e1172ce379658cecfd3f7d70">exif_mem_unref</a> (<a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> *)</td></tr>
<tr class="memdesc:adabd1345e1172ce379658cecfd3f7d70"><td class="mdescLeft">&#160;</td><td class="mdescRight">Unrefcount an ExifMem.  <br /></td></tr>
<tr class="separator:adabd1345e1172ce379658cecfd3f7d70"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a49a0fff19d5784d3ee890a9ece7366" id="r_a6a49a0fff19d5784d3ee890a9ece7366"><td class="memItemLeft" align="right" valign="top"><a id="a6a49a0fff19d5784d3ee890a9ece7366" name="a6a49a0fff19d5784d3ee890a9ece7366"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>exif_mem_alloc</b> (<a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> *m, <a class="el" href="exif-utils_8h.html#a34c5d7765ab2e6dec8308c5127a10afa">ExifLong</a> s)</td></tr>
<tr class="separator:a6a49a0fff19d5784d3ee890a9ece7366"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a082842bf500722f303c2f9435ea2c50f" id="r_a082842bf500722f303c2f9435ea2c50f"><td class="memItemLeft" align="right" valign="top"><a id="a082842bf500722f303c2f9435ea2c50f" name="a082842bf500722f303c2f9435ea2c50f"></a>
void *&#160;</td><td class="memItemRight" valign="bottom"><b>exif_mem_realloc</b> (<a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> *m, void *p, <a class="el" href="exif-utils_8h.html#a34c5d7765ab2e6dec8308c5127a10afa">ExifLong</a> s)</td></tr>
<tr class="separator:a082842bf500722f303c2f9435ea2c50f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7ec7776593c6ffe5f49fec974f7cfe1" id="r_ab7ec7776593c6ffe5f49fec974f7cfe1"><td class="memItemLeft" align="right" valign="top"><a id="ab7ec7776593c6ffe5f49fec974f7cfe1" name="ab7ec7776593c6ffe5f49fec974f7cfe1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>exif_mem_free</b> (<a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> *m, void *p)</td></tr>
<tr class="separator:ab7ec7776593c6ffe5f49fec974f7cfe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc8fd4e1a319a790581975db6f1a7233" id="r_acc8fd4e1a319a790581975db6f1a7233"><td class="memItemLeft" align="right" valign="top"><a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="exif-mem_8h.html#acc8fd4e1a319a790581975db6f1a7233">exif_mem_new_default</a> (void)</td></tr>
<tr class="memdesc:acc8fd4e1a319a790581975db6f1a7233"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new ExifMem with default values for your convenience.  <br /></td></tr>
<tr class="separator:acc8fd4e1a319a790581975db6f1a7233"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Define the ExifMem data type and the associated functions. </p>
<p>ExifMem defines the memory management functions used within libexif. </p>
</div><h2 class="groupheader">Typedef Documentation</h2>
<a id="a983dbcdc43d515ef6c7dc003240ef427" name="a983dbcdc43d515ef6c7dc003240ef427"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a983dbcdc43d515ef6c7dc003240ef427">&#9670;&#160;</a></span>ExifMemAllocFunc</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void *(* ExifMemAllocFunc) (<a class="el" href="exif-utils_8h.html#a34c5d7765ab2e6dec8308c5127a10afa">ExifLong</a> s)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Should work like calloc() </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>the size of the block to allocate. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the allocated memory and initialized. </dd></dl>

</div>
</div>
<a id="a82bf96c57cc83eabdba1ad1ad0d69263" name="a82bf96c57cc83eabdba1ad1ad0d69263"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a82bf96c57cc83eabdba1ad1ad0d69263">&#9670;&#160;</a></span>ExifMemFreeFunc</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* ExifMemFreeFunc) (void *p)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Free method for ExifMem. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>the pointer to free </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>the freed pointer </dd></dl>

</div>
</div>
<a id="aea07644ea9dc97d5572d85ef03827f65" name="aea07644ea9dc97d5572d85ef03827f65"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea07644ea9dc97d5572d85ef03827f65">&#9670;&#160;</a></span>ExifMemReallocFunc</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void *(* ExifMemReallocFunc) (void *p, <a class="el" href="exif-utils_8h.html#a34c5d7765ab2e6dec8308c5127a10afa">ExifLong</a> s)</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Should work like realloc() </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">p</td><td>the pointer to reallocate </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">s</td><td>the size of the reallocated block </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>allocated memory </dd></dl>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ad56b5b9868ea77e681a903513c3b55f3" name="ad56b5b9868ea77e681a903513c3b55f3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad56b5b9868ea77e681a903513c3b55f3">&#9670;&#160;</a></span>exif_mem_new()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> * exif_mem_new </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="exif-mem_8h.html#a983dbcdc43d515ef6c7dc003240ef427">ExifMemAllocFunc</a>&#160;</td>
          <td class="paramname"><em>a</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="exif-mem_8h.html#aea07644ea9dc97d5572d85ef03827f65">ExifMemReallocFunc</a>&#160;</td>
          <td class="paramname"><em>r</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="exif-mem_8h.html#a82bf96c57cc83eabdba1ad1ad0d69263">ExifMemFreeFunc</a>&#160;</td>
          <td class="paramname"><em>f</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new ExifMem. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">a</td><td>the allocator function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">r</td><td>the reallocator function </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">f</td><td>the free function </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>allocated <a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e" title="ExifMem define a memory allocator.">ExifMem</a>, or NULL on error </dd></dl>

</div>
</div>
<a id="acc8fd4e1a319a790581975db6f1a7233" name="acc8fd4e1a319a790581975db6f1a7233"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc8fd4e1a319a790581975db6f1a7233">&#9670;&#160;</a></span>exif_mem_new_default()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> * exif_mem_new_default </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new ExifMem with default values for your convenience. </p>
<dl class="section return"><dt>Returns</dt><dd>return a new default ExifMem </dd></dl>

</div>
</div>
<a id="adabd1345e1172ce379658cecfd3f7d70" name="adabd1345e1172ce379658cecfd3f7d70"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adabd1345e1172ce379658cecfd3f7d70">&#9670;&#160;</a></span>exif_mem_unref()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void exif_mem_unref </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="exif-mem_8h.html#aab8aacbc0ed6f11a1f022b7b1bf4750e">ExifMem</a> *&#160;</td>
          <td class="paramname"><em>mem</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Unrefcount an ExifMem. </p>
<p>If the refcount reaches 0, the ExifMem is freed </p>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="dir_04d2bd150f7cc849eeec70b9b0fdccb1.html">libexif</a></li><li class="navelem"><a class="el" href="exif-mem_8h.html">exif-mem.h</a></li>
    <li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8 </li>
  </ul>
</div>
</body>
</html>