Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找文件位置>;2^32英寸C_C_File - Fatal编程技术网

查找文件位置>;2^32英寸C

查找文件位置>;2^32英寸C,c,file,C,File,我正在编写一个程序,将大量数据写入一个文件,但该文件最终将足够大,我无法通过它查找,因为该位置将大于32位计算机上的最大整数大小。我想寻找一个位置至少2^35。正确的方法是什么 编辑: 我正在尝试制作一个跨平台的程序,但我目前正在使用Linux 32位操作系统。对于标准Linux/glibc(不能为其他人担保?)环境: #定义文件偏移量64位——将关闭为64位类型 使用stdio.h中的stdlib函数fseeko()和ftello(),而不是它们的常规对应函数 另请参见各自的手册页。根据您

我正在编写一个程序,将大量数据写入一个文件,但该文件最终将足够大,我无法通过它查找,因为该位置将大于32位计算机上的最大整数大小。我想寻找一个位置至少2^35。正确的方法是什么

编辑:
我正在尝试制作一个跨平台的程序,但我目前正在使用Linux 32位操作系统。

对于标准Linux/glibc(不能为其他人担保?)环境:

  • #定义文件偏移量64位
    ——将
    关闭为64位类型
  • 使用stdio.h中的stdlib函数
    fseeko()
    ftello()
    ,而不是它们的常规对应函数

另请参见各自的手册页。

根据您开发的平台,将
\u FILE\u OFFSET\u BITS
定义为
64
,并使用标准库函数
fseeko
ftello
可以解决您的问题。什么操作系统?Windows
SetFilePointer
可以进行64位搜索。什么平台?大多数64位操作系统本机支持大于2GB的文件。
fseek()
不限于
int
大小,而是
long
。您的系统上的
LONG\u MAX
是什么?您可以在那里找到答案: