函数
<cstdio>

fsetpos

int fsetpos ( FILE * stream, const fpos_t * pos );
设置流的位置指示器
中的当前位置恢复到pos

关联的内部文件位置指示器被设置为由pos表示的位置,pos是一个指向fpos_t对象的指针,该对象的值必须是先前通过调用fgetpos获得的。

成功调用此函数后,文件结束内部指示器将被清除,并且先前对此调用ungetc的所有效果都将被丢弃。

在以更新模式(读+写)打开的流上,调用fsetpos允许在读取和写入之间切换。

一个类似的函数fseek可用于在以二进制模式打开的流上设置任意位置。

参数

stream
指向一个 FILE 对象的指针,该对象标识了流。
position
指向fpos_t对象的指针,该对象包含先前用fgetpos获得的位置。

返回值

如果成功,该函数返回零。
失败时,返回一个非零值,并将errno设置为一个系统特定的正值。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* fsetpos example */
#include <stdio.h>

int main ()
{
  FILE * pFile;
  fpos_t position;

  pFile = fopen ("myfile.txt","w");
  fgetpos (pFile, &position);
  fputs ("That is a sample",pFile);
  fsetpos (pFile, &position);
  fputs ("This",pFile);
  fclose (pFile);
  return 0;
}

此代码成功执行后,一个名为myfile.txt的文件将包含
This is a sample


另见