gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:50:46 26 4
gpt4 key购买 nike

只是对 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 发行版都会有它。

要在 Linux 上使用它,您可以使用特殊函数(例如 lseek64 而不是 lseek),或者设置 #define _FILE_OFFSET_BITS 64 ,那么常规函数将使用 64 位偏移量。

关于linux - 文件指针宽度和最大文件大小之间的关系是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4933561/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com