标签:32-bit file filesystems size 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。