Autor: Michael Haardt Data: A: exim-users Assumpte: Re: [exim] Quota over 2GB supported?
On Thu, Jun 09, 2005 at 01:26:52PM +0100, Tony Finch wrote: > On Thu, 9 Jun 2005, Michael Haardt wrote:
> >
> > I don't know if C requires that there must be an integer type that is
> > large enough to hold off_t or time_t. AFAIK, both must be numeric types,
> > but I may be wrong in thinking they may be special builtin types with a
> > range larger than any other type.
>
> C89 guarantees that long is the longest integer type, but the invention of
> long long broke that and C99 standardized the breakage. C99 introduces
> intmax_t which is guaranteed to be the longest type supported by the
> implementation and may be longer than any standard type including long
> long.
I know that time_t is just a numeric (I think arithmetic is the correct
term) type, so it does not have to be integral. I have no clue about
off_t, although fractional offsets make no sense. On a system with
80 bit doubles and 32 bit integral types, using the double for off_t
would be cheap, though.
If so, I should write "while (n>=(off_t)1)" instead of "while (n)".