fgetpos - cppreference.com

##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# fgetpos

From cppreference.com
< c‎ | io

Defined in header `<stdio.h>` |  |

int fgetpos( FILE *stream, fpos_t *pos ); |  | (until C99)
int fgetpos( FILE *restrict stream, fpos_t *restrict pos ); |  | (since C99)

Obtains the file position indicator for the file stream `stream` and stores it in `pos`.

### [edit] Parameters

stream | - | file stream to examine
pos | - | pointer to a fpos_t object to store the file position indicator to

### [edit] Return value

​0​ upon success, nonzero value otherwise.

### [edit] Example

fgetpos with error checking

Run this code

    #include <stdio.h>
    #include <stdlib.h>

    int main(void)
    {
        /* Prepare an array of f-p values. */
        #define SIZE 5
        double A[SIZE] = {1.,2.,3.,4.,5.};
        /* Write array to a file. */
        FILE * fp = fopen("test.bin", "wb");
        fwrite(A,sizeof(double),SIZE,fp);
        fclose (fp);

        /* Read the f-p values into array B. */
        double B[SIZE];
        fp = fopen("test.bin","rb");
        fpos_t pos;
        if (fgetpos(fp,&pos) != 0)      /* current position: start of file */
        {
           perror("fgetpos()");
           fprintf(stderr,"fgetpos() failed in file %s at line # %d\n", __FILE__,__LINE__-3);
           exit(EXIT_FAILURE);
        }

        int ret_code = fread(B,sizeof(double),1,fp);   /* read one f-p value */
        /* current position: after reading one f-p value */
        printf("%.1f\n", B[0]);   /* print one f-p value */

        fsetpos(fp,&pos);   /* reset current position to start of file */
        ret_code = fread(B,sizeof(double),1,fp);   /* reread first f-p value */
        printf("%.1f\n", B[0]);   /* print one f-p value */

        return EXIT_SUCCESS;
    }

Output:

    1.0
    1.0

### [edit] See also

ftell | returns the current file position indicator (function) [edit]
fseek | moves the file position indicator to a specific location in a file (function) [edit]
fsetpos | moves the file position indicator to a specific location in a file (function) [edit]
C++ documentation for fgetpos

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=c/io/fgetpos&oldid=69913"