【发布时间】:2013-04-17 03:00:03
【问题描述】:
我如何使用 c 处理大文件 (>10 GB)(至少读取它们)?我没有 64 位机器,所以编译器 Option -D_FILE_OFFSET_BITS=64 不起作用。
【问题讨论】:
我如何使用 c 处理大文件 (>10 GB)(至少读取它们)?我没有 64 位机器,所以编译器 Option -D_FILE_OFFSET_BITS=64 不起作用。
【问题讨论】:
这看起来可能与Reading a large file using C (greater than 4GB) using read function, causing problems 重复
由于您提到 GCC,我假设 Linux、Solaris 或类似的东西。如果您在 Windows 上使用 GCC,我不知道以下是否成立。
如果您只是open 带有O_LARGEFILE 的文件并使用read,它应该可以工作,前提是您不要尝试将整个文件保存在内存中并且您的read 大小低于32 位在尺寸方面。 write 也一样。如果您需要查找,请使用lseek64 并使用#define _LARGEFILE64_SOURCE 进行编译(注意,lseek64 并不完全是标准的,所以如果您不在 Linux 上,lseek 手册页有望为您指出首选的解决方案)。
【讨论】: