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 для выполнения преобразования между широкими и многобайтовыми символами.

Предоставляются несколько определений типов для общих типов символов:

Определено в заголовке <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
(публичная члены-функция)
operator=
(C++11)
присваивает объект basic_filebuf
(публичная члены-функция)
swap
(C++11)
меняет местами два объекта basic_filebuf
(публичная члены-функция)
native_handle
(C++26)
возвращает внутренний, определяемый реализацией дескриптор
(публичная члены-функция)
(деструктор)
[виртуальный]
уничтожает объект basic_filebuf и закрывает файл, если он открыт
(виртуальная публичная члены-функция)
is_open
проверяет, открыт ли связанный файл
(публичная члены-функция)
open
открывает файл и настраивает его как связанную последовательность символов
(публичная члены-функция)
close
очищает буфер области помещения и закрывает связанный файл
(публичная члены-функция)

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

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

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

std::swap(std::basic_filebuf)
(C++11)
специализирует алгоритм std::swap
(шаблон функции)
END_OF_DOCUMENT_MARKER

Унаследованно от 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>)
Локали
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>)

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

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

Примечания

Макросы проверки функций Значение Std Функция
__cpp_lib_fstream_native_handle 202306L (C++26) поддержка собственных дескрипторов

См. также

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

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

Spec-Zone.ru

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