On Wed, 26 Sep 2007 17:18:06 +0530, Balbir Singh wrote:
> Andreas Schwab wrote:
> > Maxim Uvarov <[EMAIL PROTECTED]> writes:
> > 
> >> diff --git a/Documentation/accounting/getdelays.c 
> >> b/Documentation/accounting/getdelays.c
> >> index cbee3a2..73924df 100644
> >> --- a/Documentation/accounting/getdelays.c
> >> +++ b/Documentation/accounting/getdelays.c
> >> @@ -208,7 +208,7 @@ void print_delayacct(struct taskstats *t)
> >>  void task_context_switch_counts(struct taskstats *t)
> >>  {
> >>    printf("\n\nTask   %15s%15s\n"
> >> -         "       %15lu%15lu\n",
> >> +         "       %15llu%15llu\n",
> >>           "voluntary", "nonvoluntary",
> >>           t->nvcsw, t->nivcsw);
> > 
> > __u64 is not always long long.
> 
> What is the maximum size of long long across all architectures?
> How does one format __u64 for printing?

With %lu you get warnings when u64 is long long (32-bit).
With %llu you get warnings when u64 is plain long (most 64-bit).

Hence %llu + long long cast, i.e.:
printf("%llu", (unsigned long long)value);

This is ugly but luckily imposes no runtime overheads on
current 32- or 64-bit machines.

This could be done more cleanly if the u64 typedef also
#define:d a corresponding FMT_U64 format string.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to