我尝试在c中使用fopen()函数加载10Gb .raw文件。我的编译器是gcc,但我无法加载文件,总是fopen()函数返回NULL。任何人都可以帮我解决这个问题。我尝试了很多,但我没有得到解决方案。
答案 0 :(得分:0)
使用-D_FILE_OFFSET_BITS=64
的大文件支持会让您处于fseek
和ftell
不太好的情况,因为您现在可以拥有不适合{的文件偏移量{1}}。
您必须将long
更改为long
,将off_t
更改为fseek
,将fseeko
更改为ftell
}秒。那些是便携式接口(POSIX,而不是STDC),但这是不可避免的。
大文件支持,ILP32 ABI或ISO C搜索功能:你必须扔掉一个以获得另外2个。