首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件大小限制

文件大小限制
EN

Unix & Linux用户
提问于 2016-04-05 09:23:33
回答 3查看 33.8K关注 0票数 3

32位操作系统中的最大文件大小限制是多少,文件大小是否有OS限制,如果有任何限制设置,请告诉我根和oaa的最大限制是什么。

EN

回答 3

Unix & Linux用户

发布于 2016-04-05 10:02:00

文件大小受到文件系统类型的限制,而不是操作系统。通常,OS支持多个文件系统,因此不存在"OS文件大小限制“之类的东西。众所周知的文件系统有一些限制:

代码语言:javascript
复制
FAT32 - 4Gib  
NTFS - 16Eib  
ext2/3 - 16Gib - 2Tib (depends from block size)  
ext4 - 16Gib - 16Tib  
XFS - 9Eib  
ZFS - 16Eib
票数 6
EN

Unix & Linux用户

发布于 2016-04-05 11:05:12

十多年来,由于实现了GiB,32位Linux应用程序能够访问大于2 大文件支持 (2^31)的文件。目前的操作系统限制是8 EiB (2^63),在此之前不应该触及我们的普通用户.

您需要一个没有文件大小限制的文件系统。

票数 2
EN

Unix & Linux用户

发布于 2017-11-23 15:13:26

大文件支持(LFS)默认情况下不支持:

  • 32位内核
  • 运行在64位内核上的32位进程。

正如在下面的帖子中所述,它应该在编译时在内核中显式启用。否则,文件大小限制为2147483647字节= 2^31 -1 (1字节可能是为内核或FS保留的)。

  • 如果您有一个32位的RHEL,您可以使用以下命令快速验证这一点: dd If =/dev/零of=./LargeFile bs=1024 count=3000000
  • 如果您有一个64位的RHEL,并且这个过程是为32位系统编译的,那么您也会遇到同样的问题。您可以通过运行以下程序来验证这一点:#include #include ## #include #include ## #include int main(int,char *argv[],char *envp[]) { int结果;long to_write = 3000000000;int file_descriptor = open("LargeFile“,O_CREAT O_RDWR,0600);char区块1024;memset(语块,'A‘,1024);while(to_write > 0) {结果=写(file_descriptor,块,1024);if(结果!= 1024) {printf(“*ERROR* %d\n”,结果);中断;} to_write -= 1024;} close(file_descriptor);返回0;}

您需要将程序编译为32位可执行文件:

gcc -m32 -Wall -g main.c -o main

两个程序都将在文件大小达到3gb之前停止。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/274380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档