Home C&C++函数库 c++ 语法 程序源码 Linux C库

fseek

函数  <cstdio>

int fseek ( FILE * stream, long int offset, int origin );

重新定位流位置指示器

将与流关联的位置指示器设置为新位置。

对于以二进制模式打开的流,新位置是通过在原点(origin)指定的参考位置上添加偏移量(offset)来定义的。

对于以文本模式打开的流,offset应该是0或者是之前调用ftell返回的值,而origin必须是SEEK_SET。

如果函数调用时带有这些参数的其他值,则支持取决于特定的系统和库实现(不可移植)。

在成功调用该函数之后,流的文件结束内部指示符将被清除,并且先前调用ungetc对该流的所有影响将被删除。

在为更新而打开的流(read+write)上,调用fseek允许在读和写之间切换。

☲  参数



stream
指向标识流的FILE对象的指针。

offset
二进制文件:从原点偏移的字节数。
文本文件:可以是零,也可以是ftell返回的值。。

origin 指用作偏移量参考的位置。它由<cstdio>中定义的以下常量之一指定,专门用作此函数的参数:

常量 参考位置
SEEK_SET 文件开始
SEEK_CUR 文件指针的当前位置
SEEK_END 文件终点*
*允许库实现不支持SEEK_END(因此,使用它的代码没有真正标准的可移植性)。

☉  返回值



如果成功,函数返回0。

否则,返回非零值。

如果发生读写错误,则设置错误指示符(ferror)。

☣  示例



/* fseek example */
#include <stdio.h>

int main ()
{
  FILE * pFile;
  pFile = fopen ( "example.txt" , "wb" );
  fputs ( "This is an apple." , pFile );
  fseek ( pFile , 9 , SEEK_SET );
  fputs ( " sam" , pFile );
  fclose ( pFile );
  return 0;
}
成功执行此代码后,example.txt文件包含:
This is a sample.

🍄  另请参阅



fsetpos 设置流位置指示器(function )
ftell 获取流中的当前位置(function )
rewind 将流的位置设置为开头(function )

联系我们 免责声明 关于CandCplus 网站地图