Re: [exim] Quota over 2GB supported?

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Michael Haardt
Date:  
À: Exim User's Mailing List
Sujet: Re: [exim] Quota over 2GB supported?
On Wed, Jun 08, 2005 at 05:07:34PM -0400, Greg A. Woods wrote:
> C99 does make this easier by requiring standard macro definitions for
> format specifiers, but you can still define your own:
>
> in some application-specific portability header:
>
>     #ifdef OFF_T_IS_LONG_LONG
>     # define MY_OFF_T_FMT        "%lld"
>     #endif
>     #ifdef OFF_T_IS_LONG
>     # define MY_OFF_T_FMT        "%ld"
>     #endif

>
> and then in the code:
>
>     printf("off_t value is: " MY_OFF_T_FMT ".\n", (off_t) foo);


Since Exim uses mostly string_sprintf(), perhaps it is time for
its own *printf implementation instead of internally using libc.
I usually do that in larger projects, which has the advantage
of being able to use format specifiers for sockaddr, off_t
and time_t.

> (BTW, ``Just say NO to operating systems with "LARGE FILE SUPPORT"!!!!''
> What a stupid idea that was just to appease the bass-ackwards ABI
> nutcases.)


I don't really seen an option other than using 64 bit off_t from the
beginning, and who knows, perhaps some day that may not be enough, too.
Again we had to implement large file support and programs not using it
will be unable to deal with the new possible file sizes.

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. I also would not mind, if there were
functions to convert from and to their ASCII representation.

Michael