C语言 <stdio.h> fgetpos() 函数

  • 描述

    C库函数int fgetpos(FILE * stream,fpos_t * pos)获取流的当前文件位置并将其写入pos。
  • 声明

    以下是fgetpos()函数的声明。
    
    int fgetpos(FILE *stream, fpos_t *pos)
    
    参数
    • stream - 这是指向标识流的FILE对象的指针。
    • pos - 这是指向fpos_t对象的指针。
  • 返回值

    该函数成功返回零,否则返回非零值。
    示例
    以下示例显示fgetpos()函数的用法-
    
    #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;
       int n = 0;
    
       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