fgetpos
      From cppreference.com
     
     
     
     
     
     
     | 
           Defined in header
            
            <stdio.h>
            | ||
| (until C99) | ||
| (since C99) | ||
       Obtains the file position indicator and the current parse state (if any) for the file stream
       
        stream
       
       and stores them in the object pointed to by
       
        pos
       
       . The value stored is only meaningful as the input to
       
        
         fsetpos
        
       
       .
      
       
      
Parameters
| stream | - | file stream to examine | 
| pos | - | pointer to a fpos_t object to store the file position indicator to | 
Return value
 0  upon success, nonzero value otherwise.
Example
         Run this code
        
       #include <stdio.h> #include <stdlib.h> #include <assert.h> int main(void) { // prepare a file holding 4 values of type double enum {SIZE = 4}; FILE* fp = fopen("test.bin", "wb"); assert(fp); int rc = fwrite((double[SIZE]){1.1, 2.2, 3.3, 4.4}, sizeof(double), SIZE, fp); assert(rc == SIZE); fclose(fp); // demo using fsetpos to return to the beginning of a file fp = fopen("test.bin", "rb"); fpos_t pos; fgetpos(fp, &pos); // store start of file in pos double d; rc = fread(&d, sizeof d, 1, fp); // read the first double assert(rc == 1); printf("First value in the file: %.1f\n", d); fsetpos(fp,&pos); // move file position back to the start of the file rc = fread(&d, sizeof d, 1, fp); // read the first double again assert(rc == 1); printf("First value in the file again: %.1f\n", d); fclose(fp); // demo error handling rc = fsetpos(stdin, &pos); if(rc) perror("could not fsetpos stdin"); }
Output:
First value in the file: 1.1 First value in the file again: 1.1 could not fsetpos stdin: Illegal seek
References
- C11 standard (ISO/IEC 9899:2011):
- 
         - 7.21.9.1 The fgetpos function (p: 336)
 
- C99 standard (ISO/IEC 9899:1999):
- 
          - 7.19.9.1 The fgetpos function (p: 302)
 
- C89/C90 standard (ISO/IEC 9899:1990):
- 
           - 4.9.9.1 The fgetpos function
 
See also
| returns the current file position indicator (function) | |
| moves the file position indicator to a specific location in a file (function) | |
| moves the file position indicator to a specific location in a file (function) | |
| 
            
             
              C++ documentation
             
            
            for
            
             
              fgetpos
             
            
            | |