<!-- This comment will put IE 6, 7 and 8 in quirks mode --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>Apache Portable Runtime: Time Routines</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javaScript" src="search/search.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body onload='searchBox.OnSelectItem(0);'> <!-- Generated by Doxygen 1.6.1 --> <script type="text/javascript"><!-- var searchBox = new SearchBox("searchBox", "search",false,'Search'); --></script> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li><a href="examples.html"><span>Examples</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <img id="MSearchSelect" src="search/search.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </div> </li> </ul> </div> </div> <div class="contents"> <h1>Time Routines<br/> <small> [<a class="el" href="group___a_p_r.html">Apache Portability Runtime library</a>]</small> </h1><table border="0" cellpadding="0" cellspacing="0"> <tr><td colspan="2"><h2>Data Structures</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a></td></tr> <tr><td colspan="2"><h2>Defines</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gab0d08005432bbda78e03bcd2e235e7d3">APR_TIME_C</a>(val) APR_INT64_C(val)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gaad2d372b64a68d96b1e4c5f1173eb2c7">APR_TIME_T_FMT</a> APR_INT64_T_FMT</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gab4dd3f3015d25a50f3be3e0e91043abf">APR_USEC_PER_SEC</a> APR_TIME_C(1000000)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gae0237f70a9a3206b5263c0a474219476">apr_time_sec</a>(time) ((time) / APR_USEC_PER_SEC)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gae842c7b471ccf0dc691eb2ff3cc8fc8e">apr_time_usec</a>(time) ((time) % APR_USEC_PER_SEC)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga05d6c6ea507b74605aa2149a4410076f">apr_time_msec</a>(time) (((time) / 1000) % 1000)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga0ab989e84c18e63d36e653aab2821691">apr_time_as_msec</a>(time) ((time) / 1000)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gaec56c2c03299a750006bfcc08d64ec32">apr_time_from_sec</a>(sec) ((<a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a>)(sec) * APR_USEC_PER_SEC)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga47e8d04826e56b6ce39ed082d33abc38">apr_time_make</a>(sec, usec)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga33933cf7a3e3c2cf6082c5f6d22ca3e5">APR_RFC822_DATE_LEN</a> (30)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga0bd804145d3954f45a6962e9dd10f220">APR_CTIME_LEN</a> (25)</td></tr> <tr><td colspan="2"><h2>Typedefs</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef apr_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef apr_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gaae2129185a395cc393f76fabf4f43e47">apr_interval_time_t</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef apr_int32_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga3e4663cc0d8b730902ff697c8d3f64be">apr_short_interval_time_t</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gae28f2767111a534f263ced95a28489b1">apr_time_exp_t</a></td></tr> <tr><td colspan="2"><h2>Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gac5cb8713d0681d7b809169a222512287">apr_time_now</a> (void)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gac2fec71f18b4a286b2e21f0b74fadce8">apr_time_ansi_put</a> (<a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> *result, time_t input)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gaaf3b8ba123feaa0af5a5975b9a8ab8b1">apr_time_exp_tz</a> (<a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> *result, <a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> input, apr_int32_t offs)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gafa8bdd3a4500f66866d8dd54bf69fb71">apr_time_exp_gmt</a> (<a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> *result, <a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> input)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga34d3b9858de1d3111a4b2ff936ada7f6">apr_time_exp_lt</a> (<a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> *result, <a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> input)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gac13166685922464d9848bda469e0b3b7">apr_time_exp_get</a> (<a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> *result, <a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> *input)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga0f9fdeae48a45662cb3f198d06c743f0">apr_time_exp_gmt_get</a> (<a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> *result, <a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> *input)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga8ffddc239a3d8051d9972cee080fd761">apr_sleep</a> (<a class="el" href="group__apr__time.html#gaae2129185a395cc393f76fabf4f43e47">apr_interval_time_t</a> t)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gad77b323dd4402ac89c51240f19015df5">apr_rfc822_date</a> (char *date_str, <a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> t)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gad1fcb8f26d508fbb34ea2beca7bc851e">apr_ctime</a> (char *date_str, <a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> t)</td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga3f5e1aa45e735f3bcf8c13fb718c214f">apr_strftime</a> (char *s, apr_size_t *retsize, apr_size_t max, const char *format, <a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> *tm)</td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#gac47e0b54f17857f0ce2925b2930b5500">apr_time_clock_hires</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p)</td></tr> <tr><td colspan="2"><h2>Variables</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga77382d017a2bef80d44478e0b41557a4">apr_month_snames</a> [12][4]</td></tr> <tr><td class="memItemLeft" align="right" valign="top">const char </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__time.html#ga37d6f7740ae0f5d8ae9cfc286e8712be">apr_day_snames</a> [7][4]</td></tr> </table> <hr/><h2>Define Documentation</h2> <a class="anchor" id="ga0bd804145d3954f45a6962e9dd10f220"></a><!-- doxytag: member="apr_time.h::APR_CTIME_LEN" ref="ga0bd804145d3954f45a6962e9dd10f220" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define APR_CTIME_LEN (25)</td> </tr> </table> </div> <div class="memdoc"> <p>length of a CTIME date </p> </div> </div> <a class="anchor" id="ga33933cf7a3e3c2cf6082c5f6d22ca3e5"></a><!-- doxytag: member="apr_time.h::APR_RFC822_DATE_LEN" ref="ga33933cf7a3e3c2cf6082c5f6d22ca3e5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define APR_RFC822_DATE_LEN (30)</td> </tr> </table> </div> <div class="memdoc"> <p>length of a RFC822 Date </p> </div> </div> <a class="anchor" id="ga0ab989e84c18e63d36e653aab2821691"></a><!-- doxytag: member="apr_time.h::apr_time_as_msec" ref="ga0ab989e84c18e63d36e653aab2821691" args="(time)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define apr_time_as_msec</td> <td>(</td> <td class="paramtype">time </td> <td class="paramname"></td> <td> ) </td> <td> ((time) / 1000)</td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>apr_time_t as a msec </dd></dl> </div> </div> <a class="anchor" id="gab0d08005432bbda78e03bcd2e235e7d3"></a><!-- doxytag: member="apr_time.h::APR_TIME_C" ref="gab0d08005432bbda78e03bcd2e235e7d3" args="(val)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define APR_TIME_C</td> <td>(</td> <td class="paramtype">val </td> <td class="paramname"></td> <td> ) </td> <td> APR_INT64_C(val)</td> </tr> </table> </div> <div class="memdoc"> <p>mechanism to properly type apr_time_t literals </p> </div> </div> <a class="anchor" id="gaec56c2c03299a750006bfcc08d64ec32"></a><!-- doxytag: member="apr_time.h::apr_time_from_sec" ref="gaec56c2c03299a750006bfcc08d64ec32" args="(sec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define apr_time_from_sec</td> <td>(</td> <td class="paramtype">sec </td> <td class="paramname"></td> <td> ) </td> <td> ((<a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a>)(sec) * APR_USEC_PER_SEC)</td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>a second as an apr_time_t </dd></dl> </div> </div> <a class="anchor" id="ga47e8d04826e56b6ce39ed082d33abc38"></a><!-- doxytag: member="apr_time.h::apr_time_make" ref="ga47e8d04826e56b6ce39ed082d33abc38" args="(sec, usec)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define apr_time_make</td> <td>(</td> <td class="paramtype">sec, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">usec </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <b>Value:</b><div class="fragment"><pre class="fragment">((<a class="code" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a>)(sec) * <a class="code" href="group__apr__time.html#gab4dd3f3015d25a50f3be3e0e91043abf">APR_USEC_PER_SEC</a> \ + (<a class="code" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a>)(usec)) </pre></div><dl class="return"><dt><b>Returns:</b></dt><dd>a second and usec combination as an apr_time_t </dd></dl> </div> </div> <a class="anchor" id="ga05d6c6ea507b74605aa2149a4410076f"></a><!-- doxytag: member="apr_time.h::apr_time_msec" ref="ga05d6c6ea507b74605aa2149a4410076f" args="(time)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define apr_time_msec</td> <td>(</td> <td class="paramtype">time </td> <td class="paramname"></td> <td> ) </td> <td> (((time) / 1000) % 1000)</td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>apr_time_t as a msec </dd></dl> </div> </div> <a class="anchor" id="gae0237f70a9a3206b5263c0a474219476"></a><!-- doxytag: member="apr_time.h::apr_time_sec" ref="gae0237f70a9a3206b5263c0a474219476" args="(time)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define apr_time_sec</td> <td>(</td> <td class="paramtype">time </td> <td class="paramname"></td> <td> ) </td> <td> ((time) / APR_USEC_PER_SEC)</td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>apr_time_t as a second </dd></dl> </div> </div> <a class="anchor" id="gaad2d372b64a68d96b1e4c5f1173eb2c7"></a><!-- doxytag: member="apr_time.h::APR_TIME_T_FMT" ref="gaad2d372b64a68d96b1e4c5f1173eb2c7" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define APR_TIME_T_FMT APR_INT64_T_FMT</td> </tr> </table> </div> <div class="memdoc"> <p>mechanism to properly print apr_time_t values </p> </div> </div> <a class="anchor" id="gae842c7b471ccf0dc691eb2ff3cc8fc8e"></a><!-- doxytag: member="apr_time.h::apr_time_usec" ref="gae842c7b471ccf0dc691eb2ff3cc8fc8e" args="(time)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define apr_time_usec</td> <td>(</td> <td class="paramtype">time </td> <td class="paramname"></td> <td> ) </td> <td> ((time) % APR_USEC_PER_SEC)</td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>apr_time_t as a usec </dd></dl> </div> </div> <a class="anchor" id="gab4dd3f3015d25a50f3be3e0e91043abf"></a><!-- doxytag: member="apr_time.h::APR_USEC_PER_SEC" ref="gab4dd3f3015d25a50f3be3e0e91043abf" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define APR_USEC_PER_SEC APR_TIME_C(1000000)</td> </tr> </table> </div> <div class="memdoc"> <p>number of microseconds per second </p> </div> </div> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="gaae2129185a395cc393f76fabf4f43e47"></a><!-- doxytag: member="apr_time.h::apr_interval_time_t" ref="gaae2129185a395cc393f76fabf4f43e47" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef apr_int64_t <a class="el" href="group__apr__time.html#gaae2129185a395cc393f76fabf4f43e47">apr_interval_time_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>intervals for I/O timeouts, in microseconds </p> </div> </div> <a class="anchor" id="ga3e4663cc0d8b730902ff697c8d3f64be"></a><!-- doxytag: member="apr_time.h::apr_short_interval_time_t" ref="ga3e4663cc0d8b730902ff697c8d3f64be" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef apr_int32_t <a class="el" href="group__apr__time.html#ga3e4663cc0d8b730902ff697c8d3f64be">apr_short_interval_time_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>short interval for I/O timeouts, in microseconds </p> </div> </div> <a class="anchor" id="gae28f2767111a534f263ced95a28489b1"></a><!-- doxytag: member="apr_time.h::apr_time_exp_t" ref="gae28f2767111a534f263ced95a28489b1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef struct <a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> <a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a></td> </tr> </table> </div> <div class="memdoc"> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> </dd></dl> </div> </div> <a class="anchor" id="gadb4bde16055748190eae190c55aa02bb"></a><!-- doxytag: member="apr_time.h::apr_time_t" ref="gadb4bde16055748190eae190c55aa02bb" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef apr_int64_t <a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a></td> </tr> </table> </div> <div class="memdoc"> <p>number of microseconds since 00:00:00 january 1, 1970 UTC </p> </div> </div> <hr/><h2>Function Documentation</h2> <a class="anchor" id="gad1fcb8f26d508fbb34ea2beca7bc851e"></a><!-- doxytag: member="apr_time.h::apr_ctime" ref="gad1fcb8f26d508fbb34ea2beca7bc851e" args="(char *date_str, apr_time_t t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_ctime </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>date_str</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> </td> <td class="paramname"> <em>t</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>apr_ctime formats dates in the ctime() format in an efficient manner. it is a fixed length format and requires the indicated amount of storage including the trailing NUL terminator. Unlike ANSI/ISO C ctime(), <a class="el" href="group__apr__time.html#gad1fcb8f26d508fbb34ea2beca7bc851e">apr_ctime()</a> does not include a <br/> at the end of the string. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>date_str</em> </td><td>String to write to. </td></tr> <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>the time to convert </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gad77b323dd4402ac89c51240f19015df5"></a><!-- doxytag: member="apr_time.h::apr_rfc822_date" ref="gad77b323dd4402ac89c51240f19015df5" args="(char *date_str, apr_time_t t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_rfc822_date </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>date_str</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> </td> <td class="paramname"> <em>t</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>apr_rfc822_date formats dates in the RFC822 format in an efficient manner. It is a fixed length format which requires the indicated amount of storage, including the trailing NUL terminator. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>date_str</em> </td><td>String to write to. </td></tr> <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>the time to convert </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga8ffddc239a3d8051d9972cee080fd761"></a><!-- doxytag: member="apr_time.h::apr_sleep" ref="ga8ffddc239a3d8051d9972cee080fd761" args="(apr_interval_time_t t)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void apr_sleep </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__time.html#gaae2129185a395cc393f76fabf4f43e47">apr_interval_time_t</a> </td> <td class="paramname"> <em>t</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Sleep for the specified number of micro-seconds. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>t</em> </td><td>desired amount of time to sleep. </td></tr> </table> </dd> </dl> <dl class="warning"><dt><b>Warning:</b></dt><dd>May sleep for longer than the specified time. </dd></dl> </div> </div> <a class="anchor" id="ga3f5e1aa45e735f3bcf8c13fb718c214f"></a><!-- doxytag: member="apr_time.h::apr_strftime" ref="ga3f5e1aa45e735f3bcf8c13fb718c214f" args="(char *s, apr_size_t *retsize, apr_size_t max, const char *format, apr_time_exp_t *tm)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_strftime </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"> <em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t * </td> <td class="paramname"> <em>retsize</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"> <em>max</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"> <em>format</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> * </td> <td class="paramname"> <em>tm</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>formats the exploded time according to the format specified </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>s</em> </td><td>string to write to </td></tr> <tr><td valign="top"></td><td valign="top"><em>retsize</em> </td><td>The length of the returned string </td></tr> <tr><td valign="top"></td><td valign="top"><em>max</em> </td><td>The maximum length of the string </td></tr> <tr><td valign="top"></td><td valign="top"><em>format</em> </td><td>The format for the time string </td></tr> <tr><td valign="top"></td><td valign="top"><em>tm</em> </td><td>The time to convert </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gac2fec71f18b4a286b2e21f0b74fadce8"></a><!-- doxytag: member="apr_time.h::apr_time_ansi_put" ref="gac2fec71f18b4a286b2e21f0b74fadce8" args="(apr_time_t *result, time_t input)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_time_ansi_put </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> * </td> <td class="paramname"> <em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">time_t </td> <td class="paramname"> <em>input</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>convert an ansi time_t to an apr_time_t </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>the resulting apr_time_t </td></tr> <tr><td valign="top"></td><td valign="top"><em>input</em> </td><td>the time_t to convert </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gac47e0b54f17857f0ce2925b2930b5500"></a><!-- doxytag: member="apr_time.h::apr_time_clock_hires" ref="gac47e0b54f17857f0ce2925b2930b5500" args="(apr_pool_t *p)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void apr_time_clock_hires </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"> <em>p</em></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <p>Improve the clock resolution for the lifetime of the given pool. Generally this is only desireable on benchmarking and other very time-sensitive applications, and has no impact on most platforms. </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>p</em> </td><td>The pool to associate the finer clock resolution </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gac13166685922464d9848bda469e0b3b7"></a><!-- doxytag: member="apr_time.h::apr_time_exp_get" ref="gac13166685922464d9848bda469e0b3b7" args="(apr_time_t *result, apr_time_exp_t *input)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_time_exp_get </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> * </td> <td class="paramname"> <em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> * </td> <td class="paramname"> <em>input</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Convert time value from human readable format to a numeric apr_time_t e.g. elapsed usec since epoch </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>the resulting imploded time </td></tr> <tr><td valign="top"></td><td valign="top"><em>input</em> </td><td>the input exploded time </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gafa8bdd3a4500f66866d8dd54bf69fb71"></a><!-- doxytag: member="apr_time.h::apr_time_exp_gmt" ref="gafa8bdd3a4500f66866d8dd54bf69fb71" args="(apr_time_exp_t *result, apr_time_t input)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_time_exp_gmt </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> * </td> <td class="paramname"> <em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> </td> <td class="paramname"> <em>input</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>convert a time to its human readable components in GMT timezone </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>the exploded time </td></tr> <tr><td valign="top"></td><td valign="top"><em>input</em> </td><td>the time to explode </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga0f9fdeae48a45662cb3f198d06c743f0"></a><!-- doxytag: member="apr_time.h::apr_time_exp_gmt_get" ref="ga0f9fdeae48a45662cb3f198d06c743f0" args="(apr_time_t *result, apr_time_exp_t *input)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_time_exp_gmt_get </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> * </td> <td class="paramname"> <em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> * </td> <td class="paramname"> <em>input</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Convert time value from human readable format to a numeric apr_time_t that always represents GMT </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>the resulting imploded time </td></tr> <tr><td valign="top"></td><td valign="top"><em>input</em> </td><td>the input exploded time </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="ga34d3b9858de1d3111a4b2ff936ada7f6"></a><!-- doxytag: member="apr_time.h::apr_time_exp_lt" ref="ga34d3b9858de1d3111a4b2ff936ada7f6" args="(apr_time_exp_t *result, apr_time_t input)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_time_exp_lt </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> * </td> <td class="paramname"> <em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> </td> <td class="paramname"> <em>input</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>convert a time to its human readable components in local timezone </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>the exploded time </td></tr> <tr><td valign="top"></td><td valign="top"><em>input</em> </td><td>the time to explode </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gaaf3b8ba123feaa0af5a5975b9a8ab8b1"></a><!-- doxytag: member="apr_time.h::apr_time_exp_tz" ref="gaaf3b8ba123feaa0af5a5975b9a8ab8b1" args="(apr_time_exp_t *result, apr_time_t input, apr_int32_t offs)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_time_exp_tz </td> <td>(</td> <td class="paramtype"><a class="el" href="structapr__time__exp__t.html">apr_time_exp_t</a> * </td> <td class="paramname"> <em>result</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> </td> <td class="paramname"> <em>input</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_int32_t </td> <td class="paramname"> <em>offs</em></td><td> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>convert a time to its human readable components using an offset from GMT </p> <dl><dt><b>Parameters:</b></dt><dd> <table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"></td><td valign="top"><em>result</em> </td><td>the exploded time </td></tr> <tr><td valign="top"></td><td valign="top"><em>input</em> </td><td>the time to explode </td></tr> <tr><td valign="top"></td><td valign="top"><em>offs</em> </td><td>the number of seconds offset to apply </td></tr> </table> </dd> </dl> </div> </div> <a class="anchor" id="gac5cb8713d0681d7b809169a222512287"></a><!-- doxytag: member="apr_time.h::apr_time_now" ref="gac5cb8713d0681d7b809169a222512287" args="(void)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__time.html#gadb4bde16055748190eae190c55aa02bb">apr_time_t</a> apr_time_now </td> <td>(</td> <td class="paramtype">void </td> <td class="paramname"></td> <td> ) </td> <td></td> </tr> </table> </div> <div class="memdoc"> <dl class="return"><dt><b>Returns:</b></dt><dd>the current time </dd></dl> </div> </div> <hr/><h2>Variable Documentation</h2> <a class="anchor" id="ga37d6f7740ae0f5d8ae9cfc286e8712be"></a><!-- doxytag: member="apr_time.h::apr_day_snames" ref="ga37d6f7740ae0f5d8ae9cfc286e8712be" args="[7][4]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char <a class="el" href="group__apr__time.html#ga37d6f7740ae0f5d8ae9cfc286e8712be">apr_day_snames</a>[7][4]</td> </tr> </table> </div> <div class="memdoc"> <p>day names </p> </div> </div> <a class="anchor" id="ga77382d017a2bef80d44478e0b41557a4"></a><!-- doxytag: member="apr_time.h::apr_month_snames" ref="ga77382d017a2bef80d44478e0b41557a4" args="[12][4]" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const char <a class="el" href="group__apr__time.html#ga77382d017a2bef80d44478e0b41557a4">apr_month_snames</a>[12][4]</td> </tr> </table> </div> <div class="memdoc"> <p>month names </p> </div> </div> </div> <!--- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Defines</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <hr size="1"/><address style="text-align: right;"><small>Generated on 27 Sep 2009 for Apache Portable Runtime by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address> </body> </html>