Click here to Skip to main content
15,894,017 members
Articles / Programming Languages / C

A Generic C-Language TCP Client Application

Rate me:
Please Sign up or sign in to vote.
3.67/5 (2 votes)
9 May 2010CPOL4 min read 29.1K   793   20  
A library for writing simple TCP client applications
<!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>TcpClient2: Time Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.3 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="annotated.html"><span>Class&nbsp;List</span></a></li>
      <li><a href="classes.html"><span>Class&nbsp;Index</span></a></li>
      <li><a href="functions.html"><span>Class&nbsp;Members</span></a></li>
    </ul>
  </div>
</div>
<div class="contents">
<h1>Time Class Reference</h1><!-- doxytag: class="Time" -->
<p><a class="el" href="classTime.html" title="Time formatting class.">Time</a> formatting class.  
<a href="#_details">More...</a></p>

<p><a href="classTime-members.html">List of all members.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Public Member Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#a766c987957efdc10361415bdb5c72aac">time_formatCurrentDate</a> (char *formattedDate)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats the current date as a string in the format DD/MM/YYYY (zero terminated).  <a href="#a766c987957efdc10361415bdb5c72aac"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#ae76f2ea63c6e516cc6bba8041dff5a09">time_formatCurrentShortDatePacked</a> (char *formattedDate)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats the current date as a string in the format DDMMYY (zero terminated).  <a href="#ae76f2ea63c6e516cc6bba8041dff5a09"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#ae71a51ee9f6af75a8b8d58bc556b9ed4">time_formatCurrentShortDateReversePacked</a> (char *formattedDate)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats the current date as a string in the format YYMMDD (zero terminated).  <a href="#ae71a51ee9f6af75a8b8d58bc556b9ed4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#aaabd5e357768b769cab5dd35e62d7997">time_formatCurrentTime</a> (char *formattedTime)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats the current time as a string in the format HH:MM:SS (zero terminated).  <a href="#aaabd5e357768b769cab5dd35e62d7997"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#a6896d43192b299f2af4ae63a9f806061">time_formatCurrentTimePacked</a> (char *formattedTime)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats the current time as a string in the format HHMMSS, that is, without the ':' separators (zero terminated).  <a href="#a6896d43192b299f2af4ae63a9f806061"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#af1fd6cd862715ff4b1d5e19ea14c7caf">time_formatDate</a> (char *formattedDate, time_t timestamp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats a date as a string in the format DD/MM/YYYY (zero terminated).  <a href="#af1fd6cd862715ff4b1d5e19ea14c7caf"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#a9bdd6a537b679526361c096fd32021c0">time_formatShortDatePacked</a> (char *formattedDate, time_t timestamp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats a date as a string in the format DDMMYY (zero terminated).  <a href="#a9bdd6a537b679526361c096fd32021c0"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#ad2d3e93716242b5fb98fc2ad338af66c">time_formatShortDateReversePacked</a> (char *formattedDate, time_t timestamp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats a date as a string in the format YYMMDD (zero terminated).  <a href="#ad2d3e93716242b5fb98fc2ad338af66c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#afac127f0005f7817e96f589b6d516a36">time_formatTime</a> (char *formattedTime, time_t timestamp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats a time value as a string in the format HH:MM:SS (zero terminated).  <a href="#afac127f0005f7817e96f589b6d516a36"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">TC2API void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#aaa39ea5ce2d7a3dfa3085f6610bcb33a">time_formatTimePacked</a> (char *formattedTime, time_t timestamp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Formats a time value as a string in the format HHMMSS, that is, without the ':' separators (zero terminated).  <a href="#aaa39ea5ce2d7a3dfa3085f6610bcb33a"></a><br/></td></tr>
<tr><td colspan="2"><h2>Static Private Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static <a class="el" href="config_8h.html#a0f128c3e0c83721af0220c00554e9c4e">cchar</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="classTime.html#a7e2c66ccc38864c00befd65cefa28c00">sourceID</a> [] = &quot;ZTM&quot;</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Identification of this source file in the <a class="el" href="classLog.html" title="Log class.">Log</a> file.  <a href="#a7e2c66ccc38864c00befd65cefa28c00"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p><a class="el" href="classTime.html" title="Time formatting class.">Time</a> formatting class. </p>
<p>This class provides an array of methods for formatting time. </p>
<hr/><h2>Member Function Documentation</h2>
<a class="anchor" id="a766c987957efdc10361415bdb5c72aac"></a><!-- doxytag: member="Time::time_formatCurrentDate" ref="a766c987957efdc10361415bdb5c72aac" args="(char *formattedDate)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatCurrentDate </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedDate</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats the current date as a string in the format DD/MM/YYYY (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedDate</em>&nbsp;</td><td>: address of the buffer which will receive the formatted date </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00051">51</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00052"></a>00052 {
<a name="l00053"></a>00053    <a class="code" href="classTime.html#af1fd6cd862715ff4b1d5e19ea14c7caf" title="Formats a date as a string in the format DD/MM/YYYY (zero terminated).">time_formatDate</a>(formattedDate , time(NULL));
<a name="l00054"></a>00054 }
</pre></div></p>

</div>
</div>
<a class="anchor" id="ae76f2ea63c6e516cc6bba8041dff5a09"></a><!-- doxytag: member="Time::time_formatCurrentShortDatePacked" ref="ae76f2ea63c6e516cc6bba8041dff5a09" args="(char *formattedDate)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatCurrentShortDatePacked </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedDate</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats the current date as a string in the format DDMMYY (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedDate</em>&nbsp;</td><td>: address of the buffer which will receive the formatted date </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00068">68</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00069"></a>00069 {
<a name="l00070"></a>00070    <a class="code" href="classTime.html#a9bdd6a537b679526361c096fd32021c0" title="Formats a date as a string in the format DDMMYY (zero terminated).">time_formatShortDatePacked</a>(formattedDate , time(NULL));
<a name="l00071"></a>00071 }
</pre></div></p>

</div>
</div>
<a class="anchor" id="ae71a51ee9f6af75a8b8d58bc556b9ed4"></a><!-- doxytag: member="Time::time_formatCurrentShortDateReversePacked" ref="ae71a51ee9f6af75a8b8d58bc556b9ed4" args="(char *formattedDate)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatCurrentShortDateReversePacked </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedDate</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats the current date as a string in the format YYMMDD (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedDate</em>&nbsp;</td><td>: address of the buffer which will receive the formatted date </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00085">85</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00086"></a>00086 {
<a name="l00087"></a>00087    <a class="code" href="classTime.html#ad2d3e93716242b5fb98fc2ad338af66c" title="Formats a date as a string in the format YYMMDD (zero terminated).">time_formatShortDateReversePacked</a>(formattedDate , time(NULL));
<a name="l00088"></a>00088 }
</pre></div></p>

</div>
</div>
<a class="anchor" id="aaabd5e357768b769cab5dd35e62d7997"></a><!-- doxytag: member="Time::time_formatCurrentTime" ref="aaabd5e357768b769cab5dd35e62d7997" args="(char *formattedTime)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatCurrentTime </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedTime</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats the current time as a string in the format HH:MM:SS (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedTime</em>&nbsp;</td><td>: address of the buffer which will receive the formatted time </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00103">103</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00104"></a>00104 {
<a name="l00105"></a>00105    <a class="code" href="classTime.html#afac127f0005f7817e96f589b6d516a36" title="Formats a time value as a string in the format HH:MM:SS (zero terminated).">time_formatTime</a>(formattedTime, time(NULL));
<a name="l00106"></a>00106 }
</pre></div></p>

</div>
</div>
<a class="anchor" id="a6896d43192b299f2af4ae63a9f806061"></a><!-- doxytag: member="Time::time_formatCurrentTimePacked" ref="a6896d43192b299f2af4ae63a9f806061" args="(char *formattedTime)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatCurrentTimePacked </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedTime</em></td>
          <td>&nbsp;)&nbsp;</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats the current time as a string in the format HHMMSS, that is, without the ':' separators (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedTime</em>&nbsp;</td><td>: address of the buffer which will receive the formatted time </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00121">121</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00122"></a>00122 {
<a name="l00123"></a>00123    <a class="code" href="classTime.html#aaa39ea5ce2d7a3dfa3085f6610bcb33a" title="Formats a time value as a string in the format HHMMSS, that is, without the &amp;#39;:&amp;#39;...">time_formatTimePacked</a>(formattedTime, time(NULL));
<a name="l00124"></a>00124 }
</pre></div></p>

</div>
</div>
<a class="anchor" id="af1fd6cd862715ff4b1d5e19ea14c7caf"></a><!-- doxytag: member="Time::time_formatDate" ref="af1fd6cd862715ff4b1d5e19ea14c7caf" args="(char *formattedDate, time_t timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatDate </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedDate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">time_t&nbsp;</td>
          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats a date as a string in the format DD/MM/YYYY (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timestamp</em>&nbsp;</td><td>: as returned by the <em> time </em> function</td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedDate</em>&nbsp;</td><td>: address of the buffer which will receive the formatted date </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00141">141</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00142"></a>00142 {
<a name="l00143"></a>00143    <span class="keyword">struct </span>tm result;
<a name="l00144"></a>00144 
<a name="l00145"></a>00145    assert(formattedDate);
<a name="l00146"></a>00146 
<a name="l00147"></a>00147    localtime_r(&amp;timestamp, &amp;result);
<a name="l00148"></a>00148 
<a name="l00149"></a>00149    sprintf(formattedDate+0, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_mday);
<a name="l00150"></a>00150    formattedDate[2] = <span class="charliteral">&#39;/&#39;</span>;
<a name="l00151"></a>00151    sprintf(formattedDate+3, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_mon+1);
<a name="l00152"></a>00152    formattedDate[5] = <span class="charliteral">&#39;/&#39;</span>;
<a name="l00153"></a>00153    sprintf(formattedDate+6, <span class="stringliteral">&quot;%04d&quot;</span>, result.tm_year+1900);
<a name="l00154"></a>00154 }
</pre></div></p>

</div>
</div>
<a class="anchor" id="a9bdd6a537b679526361c096fd32021c0"></a><!-- doxytag: member="Time::time_formatShortDatePacked" ref="a9bdd6a537b679526361c096fd32021c0" args="(char *formattedDate, time_t timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatShortDatePacked </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedDate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">time_t&nbsp;</td>
          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats a date as a string in the format DDMMYY (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timestamp</em>&nbsp;</td><td>: as returned by the <em> time </em> function</td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedDate</em>&nbsp;</td><td>: address of the buffer which will receive the formatted date </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00171">171</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00172"></a>00172 {
<a name="l00173"></a>00173    <span class="keyword">struct </span>tm result;
<a name="l00174"></a>00174 
<a name="l00175"></a>00175    assert(formattedDate);
<a name="l00176"></a>00176 
<a name="l00177"></a>00177    localtime_r(&amp;timestamp, &amp;result);
<a name="l00178"></a>00178 
<a name="l00179"></a>00179    sprintf(formattedDate+0, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_mday);
<a name="l00180"></a>00180    sprintf(formattedDate+2, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_mon+1);
<a name="l00181"></a>00181    sprintf(formattedDate+4, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_year-100);
<a name="l00182"></a>00182 }
</pre></div></p>

</div>
</div>
<a class="anchor" id="ad2d3e93716242b5fb98fc2ad338af66c"></a><!-- doxytag: member="Time::time_formatShortDateReversePacked" ref="ad2d3e93716242b5fb98fc2ad338af66c" args="(char *formattedDate, time_t timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatShortDateReversePacked </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedDate</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">time_t&nbsp;</td>
          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats a date as a string in the format YYMMDD (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timestamp</em>&nbsp;</td><td>: as returned by the <em> time </em> function</td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedDate</em>&nbsp;</td><td>: address of the buffer which will receive the formatted date </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00199">199</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00200"></a>00200 {
<a name="l00201"></a>00201    <span class="keyword">struct </span>tm result;
<a name="l00202"></a>00202 
<a name="l00203"></a>00203    assert(formattedDate);
<a name="l00204"></a>00204 
<a name="l00205"></a>00205    localtime_r(&amp;timestamp, &amp;result);
<a name="l00206"></a>00206 
<a name="l00207"></a>00207    sprintf(formattedDate+0, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_year-100);
<a name="l00208"></a>00208    sprintf(formattedDate+2, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_mon+1);
<a name="l00209"></a>00209    sprintf(formattedDate+4, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_mday);
<a name="l00210"></a>00210 }
</pre></div></p>

</div>
</div>
<a class="anchor" id="afac127f0005f7817e96f589b6d516a36"></a><!-- doxytag: member="Time::time_formatTime" ref="afac127f0005f7817e96f589b6d516a36" args="(char *formattedTime, time_t timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatTime </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedTime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">time_t&nbsp;</td>
          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats a time value as a string in the format HH:MM:SS (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timestamp</em>&nbsp;</td><td>: as returned by the <em> time </em> function</td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedTime</em>&nbsp;</td><td>: address of the buffer which will receive the formatted time </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00227">227</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00228"></a>00228 {
<a name="l00229"></a>00229    <span class="keyword">struct </span>tm result;
<a name="l00230"></a>00230 
<a name="l00231"></a>00231    assert(formattedTime);
<a name="l00232"></a>00232 
<a name="l00233"></a>00233    localtime_r(&amp;timestamp, &amp;result);
<a name="l00234"></a>00234 
<a name="l00235"></a>00235    sprintf(formattedTime+0, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_hour);
<a name="l00236"></a>00236    formattedTime[2] = <span class="charliteral">&#39;:&#39;</span>;
<a name="l00237"></a>00237    sprintf(formattedTime+3, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_min);
<a name="l00238"></a>00238    formattedTime[5] = <span class="charliteral">&#39;:&#39;</span>;
<a name="l00239"></a>00239    sprintf(formattedTime+6, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_sec);
<a name="l00240"></a>00240 }
</pre></div></p>

</div>
</div>
<a class="anchor" id="aaa39ea5ce2d7a3dfa3085f6610bcb33a"></a><!-- doxytag: member="Time::time_formatTimePacked" ref="aaa39ea5ce2d7a3dfa3085f6610bcb33a" args="(char *formattedTime, time_t timestamp)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">TC2API void time_formatTimePacked </td>
          <td>(</td>
          <td class="paramtype">char *&nbsp;</td>
          <td class="paramname"> <em>formattedTime</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">time_t&nbsp;</td>
          <td class="paramname"> <em>timestamp</em></td><td>&nbsp;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Formats a time value as a string in the format HHMMSS, that is, without the ':' separators (zero terminated). </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table border="0" cellspacing="2" cellpadding="0">
    <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>timestamp</em>&nbsp;</td><td>: as returned by the <em> time </em> function</td></tr>
    <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>formattedTime</em>&nbsp;</td><td>: address of the buffer which will receive the formatted time </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00258">258</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

<p><div class="fragment"><pre class="fragment"><a name="l00259"></a>00259 {
<a name="l00260"></a>00260    <span class="keyword">struct </span>tm result;
<a name="l00261"></a>00261 
<a name="l00262"></a>00262    assert(formattedTime);
<a name="l00263"></a>00263 
<a name="l00264"></a>00264    localtime_r(&amp;timestamp, &amp;result);
<a name="l00265"></a>00265 
<a name="l00266"></a>00266    sprintf(formattedTime+0, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_hour);
<a name="l00267"></a>00267    sprintf(formattedTime+2, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_min);
<a name="l00268"></a>00268    sprintf(formattedTime+4, <span class="stringliteral">&quot;%02d&quot;</span>, result.tm_sec);
<a name="l00269"></a>00269 }
</pre></div></p>

</div>
</div>
<hr/><h2>Member Data Documentation</h2>
<a class="anchor" id="a7e2c66ccc38864c00befd65cefa28c00"></a><!-- doxytag: member="Time::sourceID" ref="a7e2c66ccc38864c00befd65cefa28c00" args="[]" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="config_8h.html#a0f128c3e0c83721af0220c00554e9c4e">cchar</a> <a class="el" href="classTime.html#a7e2c66ccc38864c00befd65cefa28c00">sourceID</a>[] = &quot;ZTM&quot;<code> [static, private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Identification of this source file in the <a class="el" href="classLog.html" title="Log class.">Log</a> file. </p>

<p>Definition at line <a class="el" href="Time_8c_source.html#l00031">31</a> of file <a class="el" href="Time_8c_source.html">Time.c</a>.</p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>util/<a class="el" href="Time_8c_source.html">Time.c</a></li>
</ul>
</div>
<hr class="footer"/><address style="text-align: right;"><small>Generated on Sat May 8 16:16:37 2010 for TcpClient2 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address>
</body>
</html>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
zvx
Software Developer
Brazil Brazil
I'm a long-time software developer living in Brazil.

I've been developing software for retail and banking automation in C/C++ for many years now. In the old days I even did some COBOL programming, and some assembly for the 8080.

My experience ranges from low level software such as interface code for serial devices for DOS and Windows (bar code scanners, printers, cash dispensers, etc) and goes to writing end user applications for POS terminals and bank ATMs. In between I've done a great deal of TCP/IP programming using the basic Berkeley sockets interface, which is my main interest nowadays.

Comments and Discussions