CentOS 修改文件大小限制

高性能架构探索 2011-11-25 03:41:40
最近在测试文件传输,发现在32位系统下,文件大小不能超过2G

问下有什么办法可以去掉这个限制么?


网上搜的 在/usr/include/feature.h 中
#define _FILE_OFFSET_BITS 64

但试了还是不行

另外问下,为什么可以用 dd来创建超过2G的文件,正常的文件传输却不能超过那么多?
ps:跟代码没关系,64位下任意大小可传
...全文
854 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq120848369 2011-11-25
  • 打赏
  • 举报
回复
ulimit -a 里边可以限制block数目.
askandstudy 2011-11-25
  • 打赏
  • 举报
回复
这是在问操作系统文件大小限制,还是在问文件传输?我还在纳闷第一次碰到这样的问题呢
向良玉 2011-11-25
  • 打赏
  • 举报
回复
FAT32的文件系统的文件最大是4G,NTFS的的没有这个限制。
ext3文件系统要看你的块大小,还要看你的操作系统
其实就是inode的指针问题,我举个例子,假如是32位,block size为1024的操作系统,他的最大的文件大小是:
1024×12+1024×256+1024×256×256+1024×256×256×256=16843020 KB,约16GB
若bs大小为2048,约为268GB,若bs为4096,约为4TB
在32bit系统中,每个指针占用4b,1024b/4b=256
一个inode可以存放15个block指针,每个block指针指向一个block。
直接指针:前12个是直接指针,指向的数据块是直接的文件数据;那么前12个指针就可以保存1024×12=12k的数据,当文件超过12kb时,就要用到后面的间接指针了。。。
一级间接指针:第13个指针,其指向data block中存放的不是直接的文件数据,内含256个指针,每个block指针对应一个块,就可以保存1024×256=256kb的数据
二级间接指针:第14个指针,内含的指针指向的data block里面存放了256个指针,每个指针里面又可以存放256个指针,就是说,最后一层指针存放的才是真正的文件数据,那么其可以存放的文件大小就是1024×256×256
三级间接指针:第15个指针。。。。
askandstudy 2011-11-25
  • 打赏
  • 举报
回复
用什么方式传?文件传输的方式有很多种吧。

23,120

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧