我有这个家庭工作,我必须从一个源传输一个非常大的文件到多个机器使用bittorrent kinda的算法。最初我将文件分割成块,然后将块传送到所有目标。目标有智能分享他们与其他目标的区块。它工作正常。我想传输一个4GB的文件,所以我标记了四个1GB的文件。它在创建4GB tar文件时没有出错,但在另一端将所有块组装回原始文件时出错,说明超出了文件大小限制。我该如何解决这个2GB限制问题?如何在Linux/Unix中创建大于2GB的文件?
8
A
回答
11
我能想到的两个可能的原因:
- 你不必在你的Linux内核启用Large File Support
- 您的应用程序不具有大文件支持编译(您可能需要通过额外的gcc标志来告诉它使用特定的文件I/O功能的64位版本。例如
gcc -D_FILE_OFFSET_BITS=64
)
4
这取决于filesystem type。当使用ext3时,我不会遇到那些显着更大的文件的问题。
如果底层磁盘是FAT,NTFS或CIFS(SMB),则还必须确保使用最新版本的相应驱动程序。有一些较旧的驱动程序具有您所体验的文件大小限制。
3
这可能与system limitation configuration有关吗?
$ ulimit -a
vi /etc/security/limits.conf
vivek hard fsize 1024000
如果你不希望任何限制从/etc/security/limits.conf
删除fsize
。
1
如果您的系统支持它,您可以通过以下方式获得提示:man largefile
。
1
您应该使用fseeko和ftello,看到fseeko(3) 注意你应该定义#define _FILE_OFFSET_BITS 64
#define _FILE_OFFSET_BITS 64
#include <stdio.h>
相关问题
- 1. 大于2GB的PE文件
- 2. 如何在PHP中下载大于2Gb的文件?
- 3. 您如何在Go中将Mmap()文件大于2GB?
- 4. fileno()和大于2GB的文件
- 5. 如何使用C fread读取大于2GB的文件?
- 6. 在C#中查找和写入大于2GB的文件
- 7. 在ASP.NET MVC 3中上传大于2GB的文件
- 8. Java:如何:有效地获取2GB大小的文件大小?
- 9. 我想创建2GB的SQL Server中的MDF文件2005
- 10. ValueError:GraphDef不能大于2GB
- 11. ValueErrorr:Graphdef不能大于2GB
- 12. SCP文件的大小超过2GB
- 13. 创建索引时db文件大小大于2GB的sqlite内存使用问题
- 14. 使用Java映射大于2GB的文件
- 15. SharpSSH的SCP对象无法复制文件大于2GB
- 16. 使用PHP上传大于2GB的文件
- 17. libcurl + openssl无法下载大于2GB的文件
- 18. JMF - 大文件(2GB) - 无'movi'块错误
- 19. 在C中使用fwrite时2GB的文件大小限制?
- 20. mongodb的创建80+文件2GB每个而数据库是空
- 21. 为什么我无法在.NET中创建大于2GB的对象,即使在x64上也是如此?
- 22. 导入大于2GB的sql-files?
- 23. TideSDK - 大于2GB的包应用程序
- 24. Android的低级别大于2GB
- 25. Linux Solaris - 如何绕过zip 2GB文件大小限制
- 26. 如何基于PowerShell中的文件扩展创建文件夹
- 27. 如何在Android中创建固定大小的图像文件?
- 28. 如何在ci中创建任意大小的pdf文件
- 29. 如何在java中创建大小为400 GB的zip文件
- 30. 附加文件大块到2GB的文件使用PHP
你正在运行什么文件系统,内核版本和发行版本? – womble 2009-02-18 08:27:31
重新标记以添加linux – 2009-02-18 08:50:00