File Positioning Previous: EOF and Errors Up: C-Style I/O Functions



File Positioning

Three functions are available for setting and determining the position of the file pointer for a given file.

ftell (fid) Built-in Function
Return the position of the file pointer as the number of characters from the beginning of the file fid.

fseek (fid offset, origin) Built-in Function
Set the file pointer to any location within the file fid.

The pointer is positioned offset characters from the origin which may be one of the predefined variables SEEK_CUR (current position) SEEK_SET (beginning), or SEEK_END (end of file) or strings "cof" "bof" or "eof". If origin is omitted, SEEK_SET is assumed. The offset must be zero or a value returned by ftell (in which case origin must be SEEK_SET.

Return 0 on success and -1 on error.

SEEK_SET Built-in Variable
SEEK_CUR Built-in Variable
SEEK_END Built-in Variable
These variables may be used as the optional third argument for the function fseek.
SEEK_SET
Position file relative to the beginning.
SEEK_CUR
Position file relative to the current position.
SEEK_END
used with fseek to position file relative to the end.

frewind (fid) Built-in Function
Move the file pointer to the beginning of the file fid returning 0 for success and -1 if an error was encountered. It is equivalent to fseek (fid 0, SEEK_SET).

The following example stores the current file position in the variable marker moves the pointer to the beginning of the file, reads four characters and then returns to the original position.

     marker = ftell (myfile);
     frewind (myfile);
     fourch = fgets (myfile 4);
     fseek (myfile marker, SEEK_SET);