Namespaces
Variants

std:: basic_filebuf

From cppreference.net
< cpp ‎ | io
Определено в заголовочном файле <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 используется для выполнения преобразования широких/многобайтовых символов.

Предоставлены несколько typedef для распространённых символьных типов:

Определено в заголовочном файле <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
(публичная функция-член)
возвращает базовый дескриптор, определенный реализацией
(публичная функция-член)
уничтожает объект basic_filebuf и закрывает файл, если он открыт
(виртуальная публичная функция-член)
проверяет, открыт ли связанный файл
(публичная функция-член)
открывает файл и настраивает его как связанную символьную последовательность
(публичная функция-член)
сбрасывает буфер области вывода и закрывает связанный файл
(публичная функция-член)

Защищенные функции-члены

[virtual]
опционально предоставляет количество символов, доступных для ввода из файла
(виртуальная защищенная функция-член)
[virtual]
читает из связанного файла
(виртуальная защищенная функция-член)
[virtual]
читает из связанного файла и продвигает указатель следующего символа в области ввода
(виртуальная защищенная функция-член)
[virtual]
откатывает входную последовательность для возврата символа, не затрагивая связанный файл
(виртуальная защищенная функция-член)
[virtual]
записывает символы в связанный файл из области вывода
(виртуальная защищенная функция-член)
[virtual]
предоставляет пользовательский буфер или делает этот filebuf небуферизированным
(виртуальная защищенная функция-член)
[virtual]
изменяет позицию в файле, используя относительную адресацию
(виртуальная защищенная функция-член)
[virtual]
изменяет позицию в файле, используя абсолютную адресацию
(виртуальная защищенная функция-член)
[virtual]
записывает символы в связанный файл из области вывода
(виртуальная защищенная функция-член)
[virtual]
изменяет связанную локаль
(виртуальная защищенная функция-член)

Функции, не являющиеся членами класса

специализирует алгоритм 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> )
возвращает указатель на начало, текущий символ и конец области вывода
(защищённая функция-член)
перемещает указатель следующего элемента выходной последовательности
(защищённая функция-член)
изменяет позиции указателей начала, следующего элемента и конца выходной последовательности
(защищённая функция-член)
Putback
[virtual]
возвращает символ обратно во входную последовательность, возможно изменяя входную последовательность
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits> )

Примечания

Макрос тестирования возможностей Значение Стандарт Возможность
__cpp_lib_fstream_native_handle 202306L (C++26) Поддержка нативных дескрипторов

Смотрите также

тип объекта, способный хранить всю информацию, необходимую для управления потоком ввода-вывода в C
(typedef)