virtual pos_type seekpos(pos_type pos,
ios_base::openmode which = ios_base::in | ios_base::out);
The protected virtual member function endeavors to alter the current positions for the controlled streams. For an object
of class basic_filebuf<E, T>
, a stream position can be represented by an object of type fpos_t
, which stores an
offset and any state information needed to parse a wide stream. Offset zero designates the first element of the stream.
(An object of type pos_type
stores at least an fpos_t
object.)
For a file opened for both reading and writing, both the input and output streams are positioned in tandem. To switch
between inserting and extracting, you must call either pubseekoff
or pubseekpos
. Calls to pubseekoff
(and hence
to seekoff
) have various limitations for text streams, binary streams, and wide streams.
If the file pointer fp
is a null pointer, the function fails. Otherwise, it endeavors to alter the stream position by calling
fsetpos
(fp, &fposn)
, where fposn
is the fpos_t
object stored in pos
. If that function succeeds, the function
returns pos
. Otherwise, it returns an invalid stream position.