{{keywords>wiki library source code example reference}}
====== fgetpos ======
int fgetpos(FILE *stream, fpos_t *pos);
Stores current file position for stream stream in *pos. Returns non-zero on error.
=== Description ===
The fgetpos() function stores the file position indicator of the given file stream in the given position variable.\\
The position variable is of type fpos_t (which is defined in stdio.h) and is an object that can hold every possible position in a FILE.\\
fgetpos() returns zero upon success, and a non-zero value upon failure.
===== C Sourcecode Example =====
/*
* fgetpos example code
* http://code-reference.com/c/stdio.h/fgetpos
*/
#include /* including standard library */
//#include /* uncomment this for Windows */
int main( void )
{
FILE *stream;
fpos_t file_pos;
int c,i;
if((stream=fopen("test.txt","r"))==NULL) {
printf("Cannot open file.\n");
return 1;
}
fgetpos(stream, &file_pos);
while((c = fgetc(stream) ) != EOF) {
if ( c == '#' ){
fgetpos(stream, &file_pos);
}
printf("character is: %c\n", c);
}
printf("1st Position of # is the %d Byte\n", file_pos);
fclose(stream);
return 0;
}
==== fgetpos example output ====
output: ./fgetpos
character is: L
character is: i
character is: n
character is: e
character is:
character is: 1
character is:
character is: #
.... and so on
...
1st Position of # is the 24 Byte