public member function
<fstream>

std::basic_fstream::close

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

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

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

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

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

返回值



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

示例

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

int main () {

  std::fstream fs;
  fs.open ("test.txt", std::fstream::in | std::fstream::out | std::fstream::app);

  fs << " more lorem ipsum";

  fs.close();

  return 0;
}

資料競爭

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

異常安全

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

另見