系统相关
首页 > 系统相关> > linux-文件指针宽度和最大文件大小之间的关系是什么

linux-文件指针宽度和最大文件大小之间的关系是什么

作者:互联网

只是对Linux上一些流行的文件系统提供的最大文件大小限制感到好奇,我已经看到一些文件达到了TB规模.

我的问题是,如果文件指针是32位宽(与我们今天遇到的大多数Linux一样),那是否意味着我们可以寻址的最大距离是2 ^ 32-1个字节?那么我们如何存储大于4GB的文件?

此外,即使我们可以存储这样的文件,如何定位超出2 ^ 32范围的位置?

解决方法:

要使用大于4 GB的文件,在Linux上需要“大文件支持”(LFS). LFS引入的更改之一是文件偏移量是64位数字.这与Linux本身以32位还是64位模式(例如x86与x86-64)运行无关.参见例如http://www.suse.de/~aj/linux_lfs.html

LFS主要是在glibc 2.2和2.4.0内核中引入的(大约在2000-2001年引入),因此任何最新的Linux发行版都将包含LFS.

要在Linux上使用它,您可以使用特殊功能(例如,使用lseek64代替lseek),或设置#define _FILE_OFFSET_BITS 64,然后常规功能将使用64位偏移量.

标签:32-bit,file,filesystems,size,linux
来源: https://codeday.me/bug/20191023/1913662.html