[英]How can I set value of a variable to an amount that is more than unsigned long long maximum value in C++?
[英]Pass a value greater than maximum value of long type to fseek in C
我需要将一些值传递给C中的fseek()
方法,该方法大于signed long类型的最大值(2147483647)。 但如果我喜欢下面结果的值是-1,这是不成功的。 无论如何我能做到这一点吗?
//fp is the pointer to fopen method
unsigned long long index=2147483648;
int status = fseek(fp, index, SEEK_SET);
既然你用“Objective-C”标记了这个,我假设你也在考虑使用Macintosh。
查看fseeko
(需要64位数字)。
您需要使用64位版本的fseek()
:
_fseeki64()
fseeko()
#define _FILE_OFFSET_BITS 64
或-D_FILE_OFFSET_BITS=64
对于lseek()
:
_lseeki64()
lseek()
使用#define _FILE_OFFSET_BITS 64
或-D_FILE_OFFSET_BITS=64
还有lseek64()
,但正如@R所提到的那样(见注释),不应该使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.