Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Jan 2013 01:17:21 +0100
From:      Polytropon <freebsd@edvax.de>
To:        Michael Sierchio <kudzu@tenebras.com>
Cc:        "Thomas D. Dean" <tomdean@speakeasy.org>, "questions@FreeBSD.org" <questions@freebsd.org>
Subject:   Re: time_t definition
Message-ID:  <20130117011721.69799ef6.freebsd@edvax.de>
In-Reply-To: <CAHu1Y71L0fuQPgN044-GDr8NBPAo=n%2B6HSBv7Zi%2ByXTceYTZCA@mail.gmail.com>
References:  <50F5A189.7000701@speakeasy.org> <20130116120015.3b8d0db4@mr129166> <50F6EDFB.70501@speakeasy.org> <CAHu1Y71L0fuQPgN044-GDr8NBPAo=n%2B6HSBv7Zi%2ByXTceYTZCA@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, 16 Jan 2013 10:21:03 -0800, Michael Sierchio wrote:
> Top posting for brevity - the fact is, the code in your original
> example is wrong.  There are reasons to complain about argument size
> mismatches, esp. in print functions that call (versions of) malloc.
> You should cast the time_t value explicitly, or use %d instead of %ld.

This advice looks correct. If you use the source Luke,
you'll find the following (taken from a 8.2-STABLE/i386
system source tree):

/usr/src/sys/sys/types.h (line 253):

	typedef __time_t time_t;

/usr/src/sys/i386/include/_types.h (line 97):

	typedef __int32_t __time_t;

/usr/src/sys/i386/include/_types.h (line 55):

	typedef int __int32_t;

So it boils down to (int), but %ld expects (long). This
is the exact content of the warning. You can either
case the (time_t) value to (long), or change %ld to %d
to avoid the warning.



-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20130117011721.69799ef6.freebsd>