Add IO type checking functions, add ReadLine

This commit is contained in:
2025-11-08 18:50:13 +03:00
parent 44057e96f3
commit 6d02598e20
14 changed files with 310 additions and 0 deletions

View File

@@ -178,6 +178,13 @@ BH_IO предоставляет разработчику возможность
Данная функция возвращает указатель на новый BH_IO объект или NULL.
=head2 BH_IOIsFile
int BH_IOIsFile(BH_IO *device);
Проверяет, является ли устройство ввода-вывода файлом.
=head2 BH_BufferNew
BH_IO *BH_BufferNew(BH_IO *device,
@@ -195,6 +202,13 @@ I<device>.
NULL в случае ошибки.
=head2 BH_IOIsBuffer
int BH_IOIsBuffer(BH_IO *device);
Проверяет, является ли устройство ввода-вывода буфером.
=head2 BH_BytesNew
BH_IO *BH_BytesNew(char *data,
@@ -209,6 +223,13 @@ NULL в случае ошибки.
NULL в случае ошибки.
=head2 BH_IOIsBytes
int BH_IOIsBytes(BH_IO *device);
Проверяет, является ли устройство ввода-вывода регионом памяти.
=head2 BH_IOFree
void BH_IOFree(BH_IO *device);
@@ -460,6 +481,36 @@ I<size>.
(BH_IOFlags(device) & BH_IO_FLAG_EOF)
=head2 BH_IOReadLine
char *BH_IOReadLine(BH_IO *device,
char *str,
size_t size);
Читает строку размером до I<size - 1> байт из устройства ввода-вывода и
записывает данные в I<str>. Результирующая строка нуль-терминированная.
Останавливается на символе I<\n> или конце потока (EOF). Если строка длиннее
буфера, её остаток остаётся в устройстве ввода-вывода для последующего чтения.
Данная функция возвращает указатель на новый I<str> или NULL.
=head2 BH_IOReadLineFull
char *BH_IOReadLineFull(BH_IO *device,
char *str,
size_t size);
Читает строку размером до I<size - 1> байт из устройства ввода-вывода и
записывает данные в I<str>. Результирующая строка нуль-терминированная.
Останавливается на символе I<\n> или конце потока (EOF). Полностью читает строку
из устройства ввода-вывода, отбрасывая избыточные данные.
Данная функция возвращает указатель на новый I<str> или NULL.
=head1 СТРУКТУРЫ ДАННЫХ