X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,RFC_ABUSE_POST,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Message-ID: <4DF8F426.7040705@gmail.com> Date: Wed, 15 Jun 2011 14:04:22 -0400 From: Tod User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: localtime References: <4DF8CF3D DOT 40104 AT gmail DOT com> <4DF8EA79 DOT 2060404 AT gmail DOT com> <20110615173847 DOT GB23078 AT ednor DOT casa DOT cgf DOT cx> <4DF8EF9F DOT 4090906 AT gmail DOT com> <20110615174805 DOT GC23078 AT ednor DOT casa DOT cgf DOT cx> In-Reply-To: <20110615174805.GC23078@ednor.casa.cgf.cx> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com On 06/15/2011 1:48 PM, Christopher Faylor wrote: > On Wed, Jun 15, 2011 at 01:45:03PM -0400, Tod wrote: >> On 06/15/2011 1:38 PM, Christopher Faylor wrote: >>> On Wed, Jun 15, 2011 at 01:23:05PM -0400, Tod wrote: >>>> On 06/15/2011 11:26 AM, Tod wrote: >>>>> Hi, >>>>> >>>>> Has anything change in regards to the C localtime function since 2007? >>>>> I've got a program with a function that uses it to present the date and >>>>> time that I just changed. The time isn't appearing only the date. >>>>> >>>>> No errors, no dumps, just no time. Most bizarre. >>>>> >>>>> >>>>> TIA - Tod >>>> >>>> >>>> Incidentally, here's how I'm valuing the time. Worked with the 2007 >>>> version of cygwin1.dll (not that I'm blaming cygwin): >>>> >>>> char * getTime(char *tout) >>>> { >>>> time_t now; >>>> struct tm tim; >>>> >>>> now = time(NULL); >>>> tim = *(localtime(&now)); >>>> strftime(tout,strlen(tout),"%m/%d/%Y:%H:%M:%S",&tim); >>>> >>>> return(tout); >>>> } >>>> >>>> tout is a 128 byte character array. >>> >>> If that's really what you're using then strlen(tout) seems obviously >>> wrong. It should be 128. >> >> Won't strlen(tout) resolve to 128? > > No. It resolves to the length of the string, whatever that happens to > be. If it was "abc", then strlen would == 3. > Ok, right - duh. Let me back up a couple of steps. I'm passing a 128 byte char array. I allocated it to provide enough room for the date/time stamp this function is returning. strlen(tout) will resolve to the length of the tout string. You said above that I shouldn't be using strlen(tout) and instead I should be passing 128. Would I be better off using sizeof(tout) instead? Also, the code has always worked. I just recompiled it recently. Now the date works but the time isn't appearing. What could be causing that? Thanks! -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple