如何让 gcc 写入大于 2.0 GB 的文件?

Pet*_*r.O 7 compiling gcc

我想重新编译“xxd”(用 C 编写),所以我安装了 CodeBlocks 作为 IDE。

一切似乎都很顺利,直到我发现我无法写入超过 2.0 GB 的障碍......

我读过'gcc'需要重新编译......(这听起来有点戏剧性......)
我读过我可以使用'fread64()'而不是'fread()'......(没有' t 工作)
我已经阅读了一些关于编译器选项的内容(?)...但我在那个时候迷路了?

我很惊讶它没有开箱即用,因为我认为 2.0 GB 的限制是古老的历史,就默认值而言......又错了?:(

我的操作系统是 32 位,在 32 位硬件上。
gcc 版本报告为:gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3

有没有简单的方法可以解决这个问题?

PS.. 我对警告很着迷 'info xxd' 部分(..仅在 Linux 上;)

Kee*_*ook 1

我建议-D_GNU_SOURCE只要#include <features.h>使用就添加。这将启用所有大文件支持。阅读开头/usr/include/features.h了解更多详细信息:

...
_LARGEFILE_SOURCE    Some more functions for correct standard I/O.
_LARGEFILE64_SOURCE  Additional functionality from LFS for large files.
_FILE_OFFSET_BITS=N  Select default filesystem interface.
....
_GNU_SOURCE      All of the above, plus GNU extensions.
Run Code Online (Sandbox Code Playgroud)