protected virtual member function
<fstream>

std::filebuf::seekpos

streampos seekpos (streampos pos, ios_base::openmode which = ios_base::in | ios_base::out);
將位置指標設定為絕對位置
which 引數指定的內部指標定位到 pos 指定的絕對新位置。

如果 which 包含 out,則該函式還將檔案中的任何未寫入字元寫入檔案(如果需要,還會呼叫適當的 unshift)。

此虛擬函式由公共成員 streambuf::pubseekpos 呼叫。

引數

pos
位置指標的新絕對位置。
streamoff 是一個有符號整數型別。
which
確定受影響的“內部位置指標”是“輸入位置”、“輸出位置”還是兩者兼有。它是 ios_base::openmode 型別的物件,對於此函式,它可以接受以下任意組合的有效常量值:
受影響的位置指標
ios_base::in修改“輸入位置”及其對應的“get 指標”(gptr
ios_base::out修改“輸出位置”及其對應的“put 指標”(pptr
可以同時選擇兩個位置。

返回值

成功時,返回 pos
失敗時,函式返回 streampos(streamoff(-1))
streampos 是一種定位型別,可以轉換為/從整數型別轉換(一個 fpos 型別)。

資料競爭

修改 filebuf 物件。
同時訪問同一個檔案流緩衝區物件可能導致資料爭用。

異常安全

基本保證:如果丟擲異常,*檔案流緩衝區*處於有效狀態。

另見