function
<cstdio>

fgetpos

int fgetpos ( FILE * stream, fpos_t * pos );
Get current position in stream
Retrieves the current position in the stream.

The function fills the fpos_t object pointed by pos with the information needed from the stream's position indicator to restore the stream to its current position (and multibyte state, if wide-oriented) with a call to fsetpos.

The ftell function can be used to retrieve the current position in the stream as an integer value.

Parameters

stream
Pointer to a FILE object that identifies the stream.
pos
Pointer to a fpos_t object.
This should point to an object already allocated.

Return Value

On success, the function returns zero.
In case of error, errno is set to a platform-specific positive value and the function returns a non-zero value.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* fgetpos example */ #include <stdio.h> int main () { FILE * pFile; int c; int n; fpos_t pos; pFile = fopen ("myfile.txt","r"); if (pFile==NULL) perror ("Error opening file"); else { c = fgetc (pFile); printf ("1st character is %c\n",c); fgetpos (pFile,&pos); for (n=0;n<3;n++) { fsetpos (pFile,&pos); c = fgetc (pFile); printf ("2nd character is %c\n",c); } fclose (pFile); } return 0; }
Possible output (with myfile.txt containing ABC):
1st character is A 2nd character is B 2nd character is B 2nd character is B 


The example opens myfile.txt, then reads the first character once, and then reads 3 times the same second character.

See also