Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
fseek
◄Summary► ◄Example► ◄Up► ◄Contents► ◄Index► ◄Back►
────────────────────────────────────────────────────────────────────────────
The fseek function moves the file pointer (if any) associated with
<stream> to a new location that is <offset> bytes from <origin>.
The next operation on the stream takes place at the new location.
On a stream open for update, the next operation can be either a
read or a write.
The argument <origin> must be one of the following constants
(defined in STDIO.H): SEEK_CUR, SEEK_END, or SEEK_SET.
The fseek function can be used to reposition the pointer anywhere
in a file. The pointer can also be positioned beyond the end of
the file. However, an attempt to position the pointer in front of
the beginning of the file causes an error.
The fseek function clears the end-of-file indicator and negates
the effect of any prior ungetc calls against <stream>.
When a file is opened for appending data, the current file
position is determined by the last I/O operation, not by where the
next write would occur. If no I/O operation has yet occurred on a
file opened for appending, the file position is the start of the
file.
For streams opened in text mode, fseek has limited use because
carriage-return──line-feed translations can cause fseek to produce
unexpected results. The only fseek operations guaranteed to work
on streams opened in text mode are the following:
■ Seeking with an offset of 0 relative to any of the <origin>
values
■ Seeking from the beginning of the file with an offset value
returned from a call to ftell
Return Value
If successful, fseek returns 0. Otherwise, it returns a nonzero
value. On devices incapable of seeking, the return value is
undefined.
-♦-