std::basic_filebuf
Определён в заголовочном файле <fstream> | ||
|---|---|---|
template<
class CharT,
class Traits = std::char_traits<CharT>
> class basic_filebuf : public std::basic_streambuf<CharT, Traits>
|
std::basic_filebuf — это std::basic_streambuf, связанная последовательность символов которого является файлом. И входная, и выходная последовательности связаны с одним и тем же файлом, а для обеих операций поддерживается единая позиция в файле. Ограничения на чтение и запись последовательности с помощью std::basic_filebuf такие же, как у std::FILE.
Функции underflow() и overflow() / sync() выполняют фактический ввод-вывод между файлом и областями чтения и записи буфера. Когда CharT не является char, большинство реализаций хранят в файле многобайтовые символы, а для преобразования широких/многобайтовых символов используется фасет std::codecvt.
Предоставляется несколько псевдонимов типов для распространённых типов символов:
Определён в заголовочном файле <fstream> |
|
|---|---|
| Тип | Определение |
std::filebuf | std::basic_filebuf<char> |
std::wfilebuf | std::basic_filebuf<wchar_t> |
Типы-члены
| Тип | Определение |
|---|---|
char_type |
CharT |
traits_type |
Traits; программа некорректна, если Traits::char_type не является CharT. |
int_type |
Traits::int_type |
pos_type |
Traits::pos_type, который должен быть std::fpos<Traits::state_type> |
off_type |
Traits::off_type |
native_handle_type(C++26) |
определяемый реализацией тип, который является TriviallyCopyable и semiregular |
Функции-члены
Открытые функции-члены |
|
создаёт объект basic_filebuf (открытая функция-член) |
|
|
(C++11) | присваивает объект basic_filebuf (открытая функция-член) |
|
(C++11) | обменивает местами два объекта basic_filebuf (открытая функция-член) |
|
(C++26) | возвращает дескриптор, определяемый реализацией и используемый внутри неё (открытая функция-член) |
|
[virtual] | уничтожает объект basic_filebuf и закрывает файл, если он открыт (виртуальная открытая функция-член) |
| проверяет, открыт ли связанный файл (открытая функция-член) |
|
| открывает файл и настраивает его как связанную последовательность символов (открытая функция-член) |
|
| сбрасывает буфер области записи и закрывает связанный файл (открытая функция-член) |
|
Защищённые функции-члены |
|
|
[virtual] | при необходимости предоставляет количество символов, доступных для чтения из файла (виртуальная защищённая функция-член) |
|
[virtual] | читает из связанного файла (виртуальная защищённая функция-член) |
|
[virtual] | читает из связанного файла и перемещает указатель на следующую позицию в области чтения (виртуальная защищённая функция-член) |
|
[virtual] | откатывает входную последовательность, чтобы вернуть символ обратно, не затрагивая связанный файл (виртуальная защищённая функция-член) |
|
[virtual] | записывает символы из области записи в связанный файл (виртуальная защищённая функция-член) |
|
[virtual] | предоставляет буфер, заданный пользователем, или отключает буферизацию для этого filebuf (виртуальная защищённая функция-член) |
|
[virtual] | изменяет позицию в файле, используя относительную адресацию (виртуальная защищённая функция-член) |
|
[virtual] | изменяет позицию в файле, используя абсолютную адресацию (виртуальная защищённая функция-член) |
|
[virtual] | записывает символы из области записи в связанный файл (виртуальная защищённая функция-член) |
|
[virtual] | изменяет связанную локаль (виртуальная защищённая функция-член) |
Функции, не являющиеся членами
|
(C++11) | специализирует алгоритм std::swap (шаблон функции) |
Унаследовано от std::basic_streambuf
Типы-члены
| Тип-член | Определение |
|---|---|
char_type |
CharT |
traits_type |
Traits; программа некорректна, если Traits::char_type не является CharT. |
int_type |
Traits::int_type |
pos_type |
Traits::pos_type |
off_type |
Traits::off_type |
Функции-члены
|
[virtual] | уничтожает объект basic_streambuf (виртуальная открытая функция-член std::basic_streambuf<CharT,Traits>) |
Локали |
|
изменяет связанную локаль и вызывает imbue() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
| получает копию связанной локали (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Позиционирование |
|
вызывает setbuf() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает seekoff() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает seekpos() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает sync() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Область чтения |
|
| получает количество символов, непосредственно доступных в области чтения (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
| продвигает входную последовательность, а затем считывает один символ, не продвигая её повторно (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
|
(удалено в C++17) | считывает один символ из входной последовательности и продвигает её (открытая функция-член std::basic_streambuf<CharT,Traits>) |
| считывает один символ из входной последовательности, не продвигая её (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает xsgetn() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Область записи |
|
| записывает один символ в область записи и продвигает указатель на следующую позицию (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
вызывает xsputn() (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Возврат символа |
|
| возвращает один символ во входную последовательность (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
| перемещает указатель на следующую позицию во входной последовательности на одну позицию назад (открытая функция-член std::basic_streambuf<CharT,Traits>) |
|
Защищённые функции-члены
создаёт объект basic_streambuf (защищённая функция-член) |
|
|
(C++11) | заменяет объект basic_streambuf (защищённая функция-член) |
|
(C++11) | обменивает местами два объекта basic_streambuf (защищённая функция-член) |
Локали |
|
|
[virtual] | реагирует на изменение связанной локали (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
Позиционирование |
|
|
[virtual] | заменяет буфер пользовательским массивом, если это разрешено (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[virtual] | перемещает указатель на следующую позицию во входной последовательности, выходной последовательности или обеих последовательностях, используя относительную адресацию (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[virtual] | перемещает указатель на следующую позицию во входной последовательности, выходной последовательности или обеих последовательностях, используя абсолютную адресацию (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[virtual] | синхронизирует буферы со связанной последовательностью символов (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
Область чтения |
|
|
[virtual] | получает количество символов, доступных для чтения в связанной входной последовательности, если оно известно (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[virtual] | считывает символы из связанной входной последовательности в область чтения (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[virtual] | считывает символы из связанной входной последовательности в область чтения и продвигает указатель на следующую позицию (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[virtual] | считывает несколько символов из входной последовательности (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
| возвращает указатели на начало, текущий символ и конец области чтения (защищённая функция-член) |
|
| продвигает указатель на следующую позицию во входной последовательности (защищённая функция-член) |
|
| перемещает указатели начала, следующей позиции и конца входной последовательности (защищённая функция-член) |
|
Область записи |
|
|
[virtual] | записывает несколько символов в выходную последовательность (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[virtual] | записывает символы из области записи в связанную выходную последовательность (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
| возвращает указатели на начало, текущий символ и конец области записи (защищённая функция-член) |
|
| продвигает указатель на следующую позицию выходной последовательности (защищённая функция-член) |
|
| перемещает указатели начала, следующей позиции и конца выходной последовательности (защищённая функция-член) |
|
Возврат символа |
|
|
[virtual] | возвращает символ во входную последовательность, при необходимости изменяя её (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
Примечания
| Макрос проверки поддержки возможностей | Значение | Стандарт | Возможность |
|---|---|---|---|
__cpp_lib_fstream_native_handle | 202306L | (C++26) | поддержка нативных дескрипторов |
См. также
| тип объекта, способный хранить всю информацию, необходимую для управления потоком ввода-вывода C (псевдоним типа) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_filebuf