On Wed, Mar 11, 2009 at 06:48:49PM +0300, Alexander Yurchenko wrote:

> On Wed, Mar 11, 2009 at 05:37:14PM +0200, Alexey Suslikov wrote:
> > The limitation is 2Gb on 32-bit platforms because of off_t (man lseek).
> 
> huh?
> 
> [gra...@nohead tmp]$ cat x.c  
> #include <sys/types.h>
> #include <stdio.h>
> 
> int main(void)
> {
>         printf("size of off_t is %u bits\n", 8 * sizeof(off_t));
> }
> [gra...@nohead tmp]$ cc x.c   
> [gra...@nohead tmp]$ ./a.out                                                  
>  
> size of off_t is 64 bits
> [gra...@nohead tmp]$ arch -s  
> i386

This code is not portable.  sizeof returns a size_t, which is 64 bits
on 64-bits platforms. Better use %zu. 

        -Otto

Reply via email to