public member function
<fstream>

std::basic_ofstream::close

void close();
關閉檔案
關閉與物件關聯的檔案,並將其與流解除關聯。

任何待處理的輸出序列都將被寫入檔案。

如果流當前未與任何檔案關聯(即,沒有檔案成功地open),則呼叫此函式將失敗。

流的檔案關聯由其內部流緩衝區維護
內部,該函式呼叫rdbuf()->close(),並在失敗時設定failbit

請注意,當 basic_ofstream 物件被銷燬時,任何開啟的檔案都會被自動關閉。

返回值



如果操作失敗(包括在呼叫前沒有檔案被open),則會為流設定 failbit 狀態標誌(如果該狀態標誌已使用成員 exceptions 註冊,則可能丟擲 ios_base::failure)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// ofstream::open / ofstream::close
#include <fstream>      // std::ofstream

int main () {

  std::ofstream ofs;
  ofs.open ("test.txt", std::ofstream::out | std::ofstream::app);

  ofs << " more lorem ipsum";

  ofs.close();

  return 0;
}

資料競爭

修改 basic_ofstream 物件。
對同一的併發訪問可能會導致資料競爭。

異常安全

基本保證:如果丟擲異常,處於有效狀態。
由內部操作引發的任何異常都會被該函式捕獲,並在關閉檔案後重新丟擲。
如果函式失敗(設定了 failbit 狀態標誌)並且 exceptions 成員被設定為針對該狀態丟擲,則它會丟擲成員型別為 failure 的異常。

另見