public member function
<fstream>

std::basic_filebuf::is_open

bool is_open() const;
检查文件是否已打开
返回对象当前是否关联到文件(即是否打开)。

如果先前调用成员函数 open 成功,并且自那时起没有调用成员函数 close,则该函数返回 true

参数



返回值

如果文件已打开并与此文件流缓冲区对象关联,则返回 true
否则返回 false

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// filebuf::is_open() example
#include <iostream>
#include <fstream>

int main () {
  std::ifstream is;
  std::filebuf * fb = is.rdbuf();
  fb->open ("test.txt",std::ios::in);

  if ( fb->is_open() )
    std::cout << "the file is open.\n";
  else
    std::cout << "the file is not open.\n";

  fb->close();

  return 0;
}

数据竞争

访问 basic_filebuf 对象。
同时访问同一个文件流缓冲区对象可能导致数据争用。

异常安全

强异常安全保证:如果抛出异常,则文件流缓冲区没有变化。

另见