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