Messages in this thread | | | From | Goswin Brederlow <> | Date | 25 Aug 2000 17:07:31 +0200 |
| |
ls does not show the correct size for files greater than 4G:
% ls -ls file_greater_than_4G
8422534 -rw-rw-r-- 1 mrvn mrvn 1048576 Aug 25 23:14 file_greater_than_4G
The wrong size seems to be a kernel problem:
from /usr/src/linux/include/asm-i386/posix_types.h: typedef long __kernel_off_t;
from /usr/src/linux/include/types.h: typedef __kernel_off_t off_t;
from /usr/src/linux/include/linux/fs.h: struct inode { loff_t i_size;
from /usr/src/linux/fs/stat.c: static long cp_new_stat64(struct inode * inode, struct stat64 * statbuf) tmp.st_size = inode->i_size;
So lstat64 get the size from the internl inode structure and that uses a 32 Bit value for the size on 32 Bit systems. There is no way to get the correct size for big files.
May the Source be with you. Goswin - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
| |