protected virtual member function
<fstream>

std::basic_filebuf::seekoff

pos_type seekoff (off_type off, ios_base::seekdir way,                  ios_base::openmode which = ios_base::in | ios_base::out);
設定內部位置到相對位置
設定由引數 which 指定的內部位置指標的新位置。此位置是透過相對於 way 指定的原點偏移 off 個字元來計算的。

除非 off 為零且 waycur,否則該函式還將把中間輸出緩衝區中的任何未寫入字元寫入檔案(必要時,還會使用適當的 unshift 呼叫的 unshift)。

成功時,此函式的效果與呼叫 fseek 等效(有關詳細資訊和限制,例如在以文字模式開啟的檔案上,請參閱 fseek)。

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

引數

off
偏移量,相對於 way 引數。
如果流使用可變寬度或狀態相關的 encoding,則 off 必須為零(否則函式將失敗)。
成員型別 off_type 由 *字元特性* 確定:通常,它是已簽名整型 streamoff 的別名。
way
型別為 ios_base::seekdir 的物件,指示偏移量應用的來源。它可以取以下任意常量值:
偏移量相對於...
ios_base::beg檔案開頭
ios_base::cur輸入位置輸出位置的當前位置,具體取決於引數 which
ios_base::end檔案結尾
which
確定受影響的是哪個內部位置指標輸入位置輸出位置或兩者。它是一個 ios_base::openmode 型別的物件,對於此函式,它可以接受以下任意組合的有效常量值。
受影響的位置指標
ios_base::in修改輸入位置及其相應的獲取指標gptr)。
ios_base::out修改輸出位置及其相應的 put 指標pptr)。
可以同時選擇兩個位置,但如果當 wayios_base::cur 時同時選擇兩者,則函式將失敗。

返回值

成功時,它返回呼叫後內部位置指標指向的新絕對位置(如果能表示為成員型別 pos_type 的值)。
失敗時,或者無法做到上述情況時,該函式返回 pos_type(off_type(-1))
成員型別 pos_type字元特性確定:通常,它是一個 fpos 型別(例如 streampos),該型別可以轉換為/從整數型別轉換。

資料競爭

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

異常安全

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

另見