basic_filebuf();
basic_filebuf(basic_filebuf&& rhs);
virtual ~basic_filebuf();
basic_filebuf& operator=(basic_filebuf&& rhs);
void swap(basic_filebuf& rhs);
template<class charT, class traits>
void swap(basic_filebuf<charT, traits>& x,
basic_filebuf<charT, traits>& y);
bool is_open() const;
basic_filebuf* open(const char* s, ios_base::openmode mode);
basic_filebuf* open(const filesystem::path::value_type* s,
ios_base::openmode mode); // wide systems only; see [fstream.syn]
ios_base flag combination | stdio equivalent | |||||
binary | in | out | trunc | app | ||
+ | "w" | |||||
+ | + | "w" | ||||
+ | + | "a" | ||||
+ | "a" | |||||
+ | "r" | |||||
+ | + | "r+" | ||||
+ | + | + | "w+" | |||
+ | + | + | "a+" | |||
+ | + | "a+" | ||||
+ | + | "wb" | ||||
+ | + | + | "wb" | |||
+ | + | + | "ab" | |||
+ | + | "ab" | ||||
+ | + | "rb" | ||||
+ | + | + | "r+b" | |||
+ | + | + | + | "w+b" | ||
+ | + | + | + | "a+b" | ||
+ | + | + | "a+b" |
basic_filebuf* open(const string& s, ios_base::openmode mode);
basic_filebuf* open(const filesystem::path& s, ios_base::openmode mode);
basic_filebuf* close();
streamsize showmanyc() override;
int_type underflow() override;
int_type uflow() override;
int_type pbackfail(int_type c = traits::eof()) override;
int_type overflow(int_type c = traits::eof()) override;
basic_streambuf* setbuf(char_type* s, streamsize n) override;
pos_type seekoff(off_type off, ios_base::seekdir way,
ios_base::openmode which
= ios_base::in | ios_base::out) override;
pos_type seekpos(pos_type sp,
ios_base::openmode which
= ios_base::in | ios_base::out) override;
1. | if (om & ios_base::out) != 0, then update the output sequence and write any unshift sequence; |
2. | set the file position to sp as if by a call to fsetpos; |
3. | if (om & ios_base::in) != 0, then update the input sequence; |
int sync() override;
void imbue(const locale& loc) override;