public member function
<fstream>

std::ofstream::close

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

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

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

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

請注意,當 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;
}

資料競爭

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

異常安全

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

另見