将大于long类型的最大值的值传递给C中的fseek
Pass a value greater than maximum value of long type to fseek in C
我需要将一些值传递给C中的fseek()
方法,这些值大于有符号长类型的最大值(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()
:
- Windows:
_fseeki64()
- Linux:
fseeko()
与#define _FILE_OFFSET_BITS 64
或-D_FILE_OFFSET_BITS=64
对于lseek()
:
- Windows:
_lseeki64()
- Linux:
lseek()
与#define _FILE_OFFSET_BITS 64
或-D_FILE_OFFSET_BITS=64
还有lseek64()
,但正如@R所提到的。。(见评论),不应使用。
相关文章:
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- .cpp和.h文件中的模板专用化声明
- 反向给定链表中的K节点
- 正在查找文档以获得PS4平台的C++中的设备信息
- enum是C++中的宏变量还是整数变量
- 使用C++库在Android项目中修改gradle中的cmake参数,用于插入指令的测试
- 将字符串存储在c++中的稳定内存中
- 文本文件中的单词链表
- 递归函数计算序列中的平方和(并输出过程)
- 如何从C++中的依赖类型中获得它所依赖的类型
- C++中的"inline"关键字
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 用C++中的一个变量定义一个常量
- vector.resize()中的分配错误
- 使用指针从C++中的数组中获取最大值
- arr[-1]在c++中的奇怪行为
- 如果 fseek 中的给定偏移量超出最后一个字符会发生什么
- 将大于long类型的最大值的值传递给C中的fseek
- 将fseek函数在c++中刷新缓冲区中的数据