在C语言中似乎有很多不同的寻找方法:
fseek()
fsetpos()
fseeko()
lseek()
许多似乎都有*64()
版本:
fseeko64()
lseek64()
更为复杂的是,许多人似乎要求使用宏定义(如_LARGEFILE64_SOURCE
或_GNU_SOURCE
)或使用64位版本。
在Windows,Linux,Mac,BSD,Solaris等操作系统上使用ANSI C来保证64位IO的最简单方法是什么,并且从什么时候开始每个操作系统都支持它?
代码工作需要采用以下限制中的至少一项:
long
是64位+,然后使用fseek()
。
只有寻求位置的代码来过作为的结果fread(), fgets(), fscanf(), fgets()
,所以使用fgetpos()
,fsetpos()
。如果文件是文本文件,这是最好的方法。
可以访问依赖于平台的64位搜索,例如lseek64()
。
多个32位fseek()
。
与rewind()
和一起使用效率低下的代码fgetc()/fread()
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句