当前位置: 首页 > 文档资料 > C 标准库 中文版 >

int fsetpos(FILE *stream, const fpos

优质
小牛编辑
133浏览
2023-12-01

描述 (Description)

C库函数int fsetpos(FILE *stream, const fpos_t *pos)将给定stream的文件位置设置为给定位置。 参数pos是函数fgetpos给出的位置。

声明 (Declaration)

以下是fsetpos()函数的声明。

int fsetpos(FILE *stream, const fpos_t *pos)

参数 (Parameters)

  • stream - 这是指向标识流的FILE对象的指针。

  • pos - 这是指向fpos_t对象的指针,该对象包含先前使用fgetpos获得的位置。

返回值 (Return Value)

如果成功,此函数返回零值,否则返回非零值并将全局变量errno为正值,可以使用perror进行解释。

例子 (Example)

以下示例显示了fsetpos()函数的用法。

#include <stdio.h>
int main () {
   FILE *fp;
   fpos_t position;
   fp = fopen("file.txt","w+");
   fgetpos(fp, &position);
   fputs("Hello, World!", fp);
   fsetpos(fp, &position);
   fputs("This is going to override previous content", fp);
   fclose(fp);
   return(0);
}

让我们编译并运行上面的程序来创建一个文件file.txt ,它将包含以下内容。 首先,我们使用fgetpos()函数获取文件的初始位置,然后我们编写Hello, World! 在文件中,但后来我们使用fsetpos()函数重置文件开头的写指针,然后用以下内容覆盖文件 -

This is going to override previous content

现在让我们使用以下程序查看上述文件的内容 -

#include <stdio.h>
int main () {
   FILE *fp;
   int c;
   fp = fopen("file.txt","r");
   while(1) {
      c = fgetc(fp);
      if( feof(fp) ) {
         break;
      }
      printf("%c", c);
   }
   fclose(fp);
   return(0);
}

让我们编译并运行上述程序以产生以下结果 -

This is going to override previous content