Getting or Setting the File Position - POSIX

Another common operation is getting or setting the file position. The fs_fgetpos() and fs_fsetpos() allow the application to ‘store’ a file location, continue reading or writing the file, and then go back to that place at a later time. An example of using file position get and set is given in Listing - Example file position set and get

Listing - Example file position set and get
void  App_Fnct (void)
{
    FS_FILE    *p_file;
    fs_fpos_t   pos;
    int         err;
    .
    .
    .
    p_file = fs_fopen("\file.txt", "r");           /* Open file ...                        */ 
    if (p_file == (FS_FILE *)0) {
        APP_TRACE_INFO(("Could not open file."));
        return;
    } 
    .
    .                                              /* ... read from file.                  */
    .
    err    = fs_fgetpos(p_file, &pos);             /* Save file position ...               */
    if (err != 0) {
        APP_TRACE_INFO(("Could not get file position."));
        return;
    } 
    .
    .                                              /* ... read some more from file.        */
    .
    err    = fs_fsetpos(p_file, &pos);             /* Set file to saved position ...       */
    if (err != 0) {
        APP_TRACE_INFO(("Could not set file position."));
        return;
    } 
    .
    .                                              /* ... read some more from file.        */
    .
    FS_fclose(p_file);                             /* When finished, close file.           */
    .
    .
    .
}