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 для выполнения преобразования между широкими и многобайтовыми символами.
Предоставляются несколько определений типов для общих типов символов:
Определено в заголовке <streambuf> |
|
|---|---|
| Тип | Определение |
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) | тип, определяемый реализацией, который является Тривиально копируемым и semiregular |
Члены-функции
Публичные члены-функции |
|
создаёт объект basic_filebuf (публичная члены-функция) |
|
|
(C++11) | присваивает объект basic_filebuf (публичная члены-функция) |
|
(C++11) | меняет местами два объекта basic_filebuf (публичная члены-функция) |
|
(C++26) | возвращает внутренний, определяемый реализацией дескриптор (публичная члены-функция) |
|
[виртуальный] | уничтожает объект basic_filebuf и закрывает файл, если он открыт (виртуальная публичная члены-функция) |
| проверяет, открыт ли связанный файл (публичная члены-функция) |
|
| открывает файл и настраивает его как связанную последовательность символов (публичная члены-функция) |
|
| очищает буфер области помещения и закрывает связанный файл (публичная члены-функция) |
|
Защищенные члены-функции |
|
|
[виртуальный] | необязательно предоставляет количество символов, доступных для ввода из файла (виртуальная защищенная члены-функция) |
|
[виртуальный] | считывает данные из связанного файла (виртуальная защищенная члены-функция) |
|
[виртуальный] | считывает данные из связанного файла и перемещает указатель следующего символа в области получения (виртуальная защищенная члены-функция) |
|
[виртуальный] | возвращает последовательность ввода для отмены операции ввода символа, не затрагивая связанный файл (виртуальная защищенная члены-функция) |
|
[виртуальный] | записывает символы в связанный файл из области помещения (виртуальная защищенная члены-функция) |
|
[виртуальный] | предоставляет буфер, указанный пользователем, или делает этот filebuf небуферизованным (виртуальная защищенная члены-функция) |
|
[виртуальный] | перепозиционирует положение в файле, используя относительную адресацию (виртуальная защищенная члены-функция) |
|
[виртуальный] | перепозиционирует положение в файле, используя абсолютную адресацию (виртуальная защищенная члены-функция) |
|
[виртуальный] | записывает символы в связанный файл из области помещения (виртуальная защищенная члены-функция) |
|
[виртуальный] | изменяет связанный локали (виртуальная защищенная члены-функция) |
Функции, не являющиеся членами
|
(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 (защищённый член-функция) |
Локали |
|
|
[виртуальный] | изменяет связанную локаль (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
Позиционирование |
|
|
[виртуальный] | заменяет буфер на заданный пользователем массив, если разрешено (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальный] | перемещает указатель на следующий символ во входном или выходном потоке, или в обоих, используя относительный адрес (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальный] | перемещает указатель на следующий символ во входном или выходном потоке, или в обоих, используя абсолютный адрес (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальный] | синхронизирует буферы с ассоциированной последовательностью символов (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
Получить область |
|
|
[виртуальный] | получает количество символов, доступных для ввода в связанной входной последовательности, если известно (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальный] | считывает символы из связанной входной последовательности в область получения (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальный] | считывает символы из связанной входной последовательности в область получения и продвигает указатель на следующий символ (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальный] | считывает несколько символов из входной последовательности (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
| возвращает указатель на начало, текущий символ и конец области получения (защищённый член-функция) |
|
| продвигает указатель на следующий символ во входной последовательности (защищённый член-функция) |
|
| перемещает указатели начала, следующего и конечного символов входной последовательности (защищённый член-функция) |
|
Область записи |
|
|
[виртуальный] | записывает несколько символов в выходную последовательность (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
|
[виртуальный] | записывает символы из области записи в связанную выходную последовательность (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
| возвращает указатель на начало, текущий символ и конец области записи (защищённый член-функция) |
|
| продвигает указатель на следующий символ в выходной последовательности (защищённый член-функция) |
|
| перемещает указатели начала, следующего и конечного символов выходной последовательности (защищённый член-функция) |
|
Возврат |
|
|
[виртуальный] | возвращает символ в входную последовательность, возможно изменяя входную последовательность (виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>) |
Примечания
| Макросы проверки функций | Значение | Std | Функция |
|---|---|---|---|
__cpp_lib_fstream_native_handle | 202306L | (C++26) | поддержка собственных дескрипторов |
См. также
| тип объекта, способный хранить всю необходимую информацию для управления потоком ввода-вывода C (typedef) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_filebuf