zac*_*caj 9 cygwin mingw large-file-support
我试图在C中读取24 GB的XML文件,但它不起作用.当我读到它时,我正在使用ftell()打印出当前位置,但是一旦它达到足够大的数字,它就会回到一个小数字并重新开始,甚至从未获得20%的文件.我认为这是用于存储位置(长)的变量范围的问题,根据http://msdn.microsoft.com/en-us/library/s3f49ktz(VS),它可以达到大约4,000,000,000..80).aspx,而我的文件大小为25,000,000,000字节.一个很长的长期应该工作,但我怎么能改变我的编译器(Cygwin/mingw32)使用或得到它有fopen64?
该ftell()函数通常返回一个,在 32 位系统上unsigned long最多仅 2 32字节 (4 GB)。因此,您无法获取 24 GB 文件的文件偏移量以适应 32 位long.
您可能有ftell64()可用的函数,或者标准fgetpos()函数可能会向您返回更大的偏移量。