Spec-Zone.ru › C++

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

Функции-члены

Открытые функции-члены

(constructor)
создаёт объект basic_filebuf
(открытая функция-член)
operator=
(C++11)
присваивает объект basic_filebuf
(открытая функция-член)
swap
(C++11)
обменивает местами два объекта basic_filebuf
(открытая функция-член)
native_handle
(C++26)
возвращает дескриптор, определяемый реализацией и используемый внутри неё
(открытая функция-член)
(destructor)
[virtual]
уничтожает объект basic_filebuf и закрывает файл, если он открыт
(виртуальная открытая функция-член)
is_open
проверяет, открыт ли связанный файл
(открытая функция-член)
open
открывает файл и настраивает его как связанную последовательность символов
(открытая функция-член)
close
сбрасывает буфер области записи и закрывает связанный файл
(открытая функция-член)

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

showmanyc
[virtual]
при необходимости предоставляет количество символов, доступных для чтения из файла
(виртуальная защищённая функция-член)
underflow
[virtual]
читает из связанного файла
(виртуальная защищённая функция-член)
uflow
[virtual]
читает из связанного файла и перемещает указатель на следующую позицию в области чтения
(виртуальная защищённая функция-член)
pbackfail
[virtual]
откатывает входную последовательность, чтобы вернуть символ обратно, не затрагивая связанный файл
(виртуальная защищённая функция-член)
overflow
[virtual]
записывает символы из области записи в связанный файл
(виртуальная защищённая функция-член)
setbuf
[virtual]
предоставляет буфер, заданный пользователем, или отключает буферизацию для этого filebuf
(виртуальная защищённая функция-член)
seekoff
[virtual]
изменяет позицию в файле, используя относительную адресацию
(виртуальная защищённая функция-член)
seekpos
[virtual]
изменяет позицию в файле, используя абсолютную адресацию
(виртуальная защищённая функция-член)
sync
[virtual]
записывает символы из области записи в связанный файл
(виртуальная защищённая функция-член)
imbue
[virtual]
изменяет связанную локаль
(виртуальная защищённая функция-член)

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

std::swap(std::basic_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

Функции-члены

(destructor)
[virtual]
уничтожает объект basic_streambuf
(виртуальная открытая функция-член std::basic_streambuf<CharT,Traits>)
Локали
pubimbue
изменяет связанную локаль и вызывает imbue()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
getloc
получает копию связанной локали
(открытая функция-член std::basic_streambuf<CharT,Traits>)
Позиционирование
pubsetbuf
вызывает setbuf()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
pubseekoff
вызывает seekoff()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
pubseekpos
вызывает seekpos()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
pubsync
вызывает sync()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
Область чтения
in_avail
получает количество символов, непосредственно доступных в области чтения
(открытая функция-член std::basic_streambuf<CharT,Traits>)
snextc
продвигает входную последовательность, а затем считывает один символ, не продвигая её повторно
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sbumpcstossc
(удалено в C++17)
считывает один символ из входной последовательности и продвигает её
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sgetc
считывает один символ из входной последовательности, не продвигая её
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sgetn
вызывает xsgetn()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
Область записи
sputc
записывает один символ в область записи и продвигает указатель на следующую позицию
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sputn
вызывает xsputn()
(открытая функция-член std::basic_streambuf<CharT,Traits>)
Возврат символа
sputbackc
возвращает один символ во входную последовательность
(открытая функция-член std::basic_streambuf<CharT,Traits>)
sungetc
перемещает указатель на следующую позицию во входной последовательности на одну позицию назад
(открытая функция-член std::basic_streambuf<CharT,Traits>)

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

(constructor)
создаёт объект basic_streambuf
(защищённая функция-член)
operator=
(C++11)
заменяет объект basic_streambuf
(защищённая функция-член)
swap
(C++11)
обменивает местами два объекта basic_streambuf
(защищённая функция-член)
Локали
imbue
[virtual]
реагирует на изменение связанной локали
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
Позиционирование
setbuf
[virtual]
заменяет буфер пользовательским массивом, если это разрешено
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
seekoff
[virtual]
перемещает указатель на следующую позицию во входной последовательности, выходной последовательности или обеих последовательностях, используя относительную адресацию
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
seekpos
[virtual]
перемещает указатель на следующую позицию во входной последовательности, выходной последовательности или обеих последовательностях, используя абсолютную адресацию
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
sync
[virtual]
синхронизирует буферы со связанной последовательностью символов
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
Область чтения
showmanyc
[virtual]
получает количество символов, доступных для чтения в связанной входной последовательности, если оно известно
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
underflow
[virtual]
считывает символы из связанной входной последовательности в область чтения
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
uflow
[virtual]
считывает символы из связанной входной последовательности в область чтения и продвигает указатель на следующую позицию
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
xsgetn
[virtual]
считывает несколько символов из входной последовательности
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
ebackgptregptr
возвращает указатели на начало, текущий символ и конец области чтения
(защищённая функция-член)
gbump
продвигает указатель на следующую позицию во входной последовательности
(защищённая функция-член)
setg
перемещает указатели начала, следующей позиции и конца входной последовательности
(защищённая функция-член)
Область записи
xsputn
[virtual]
записывает несколько символов в выходную последовательность
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
overflow
[virtual]
записывает символы из области записи в связанную выходную последовательность
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)
pbasepptrepptr
возвращает указатели на начало, текущий символ и конец области записи
(защищённая функция-член)
pbump
продвигает указатель на следующую позицию выходной последовательности
(защищённая функция-член)
setp
перемещает указатели начала, следующей позиции и конца выходной последовательности
(защищённая функция-член)
Возврат символа
pbackfail
[virtual]
возвращает символ во входную последовательность, при необходимости изменяя её
(виртуальная защищённая функция-член std::basic_streambuf<CharT,Traits>)

Примечания

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

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/io/basic_filebuf

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API