受保護的虛成員函式
<fstream>

std::basic_filebuf::seekpos

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

如果 which 包含 out,該函式還將把中間輸出緩衝區中任何未寫入的字元寫入檔案(如果需要,還會呼叫使用適當的 facet 的 unshift)。

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

引數

pos
位置指標的新絕對位置。
成員型別 pos_type字元特性確定:通常,它是一個 fpos 型別(如 streampos),可以與整數型別相互轉換。
which
確定受影響的內部位置指標輸入位置輸出位置或兩者。它是型別為 ios_base::openmode 的物件,對於此函式,它可以接受以下重要常量值的任何組合:
受影響的位置指標
ios_base::in修改輸入位置及其對應的獲取指標gptr)。
ios_base::out修改輸出位置及其對應的 put 指標pptr)。
這兩個位置可以同時選擇。

返回值

成功時,返回 pos
失敗時,函式返回 pos_type(off_type(-1))
成員型別 pos_type字元特性確定:通常,它是一個 fpos 型別(如 streampos),可以與整數型別相互轉換。

資料競爭

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

異常安全

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

另見