将大于long类型最大值的值传递给C中的fseek

时间:2012-01-03 06:30:10

标签: c++ objective-c c

我需要将一些值传递给C中的fseek()方法,该方法大于有符号长整型的最大值(2147483647)。但如果我喜欢下面结果的值是-1,这是不成功的。无论如何我能做到这一点吗?

//fp is the pointer to fopen method
unsigned long long index=2147483648;
int status = fseek(fp, index, SEEK_SET);

2 个答案:

答案 0 :(得分:9)

由于您使用“Objective-C”标记了这一点,我假设您也在考虑使用Macintosh。

Check out fseeko(需要64位数字)。

答案 1 :(得分:7)

您需要使用64位版本的fseek()

对于lseek()

  • Windows:_lseeki64()
  • Linux:lseek() #define _FILE_OFFSET_BITS 64-D_FILE_OFFSET_BITS=64

还有lseek64(),但正如@R所提到的那样(见评论),不应该使用它。