Add IO type checking functions, add ReadLine
This commit is contained in:
@@ -177,6 +177,13 @@ The optional parameter I<result> returns 0 or an error code.
|
||||
This function returns a pointer to a new BH_IO object or NULL.
|
||||
|
||||
|
||||
=head2 BH_IOIsFile
|
||||
|
||||
int BH_IOIsFile(BH_IO *device);
|
||||
|
||||
Checks if I/O device is a file.
|
||||
|
||||
|
||||
=head2 BH_BufferNew
|
||||
|
||||
BH_IO *BH_BufferNew(BH_IO *device,
|
||||
@@ -193,6 +200,13 @@ If successful, this function returns a pointer to the new BH_IO object or
|
||||
NULL in case of an error.
|
||||
|
||||
|
||||
=head2 BH_IOIsBuffer
|
||||
|
||||
int BH_IOIsBuffer(BH_IO *device);
|
||||
|
||||
Checks if I/O device is a buffer.
|
||||
|
||||
|
||||
=head2 BH_BytesNew
|
||||
|
||||
BH_IO *BH_BytesNew(char *data,
|
||||
@@ -207,6 +221,13 @@ If successful, this function returns a pointer to the new BH_IO object or
|
||||
NULL in case of an error.
|
||||
|
||||
|
||||
=head2 BH_IOIsBytes
|
||||
|
||||
int BH_IOIsBytes(BH_IO *device);
|
||||
|
||||
Checks if I/O device is a memory region/bytes.
|
||||
|
||||
|
||||
=head2 BH_IOFree
|
||||
|
||||
void BH_IOFree(BH_IO *device);
|
||||
@@ -456,6 +477,35 @@ This function is equivalent to the following code:
|
||||
(BH_IOFlags(device) & BH_IO_FLAG_EOF)
|
||||
|
||||
|
||||
=head2 BH_IOReadLine
|
||||
|
||||
char *BH_IOReadLine(BH_IO *device,
|
||||
char *str,
|
||||
size_t size);
|
||||
|
||||
Reads a line from I<device> into I<str>, up to I<size-1> bytes.
|
||||
|
||||
Stops at I<\n> or EOF. The result is null-terminated. Partial lines may remain
|
||||
in the stream if longer than buffer.
|
||||
|
||||
Returns I<str> on success, NULL on error.
|
||||
|
||||
|
||||
=head2 BH_IOReadLineFull
|
||||
|
||||
char *BH_IOReadLineFull(BH_IO *device,
|
||||
char *str,
|
||||
size_t size);
|
||||
|
||||
Reads a line from I<device> into I<str>, up to I<size-1> bytes.
|
||||
|
||||
Stops at I<\n> or EOF. The result is null-terminated. Consumes the entire line
|
||||
from the stream, discarding excess data if the line is too long. Ensures no
|
||||
partial line remains.
|
||||
|
||||
Returns I<str> on success, NULL on error.
|
||||
|
||||
|
||||
=head1 STRUCTURES
|
||||
|
||||
|
||||
|
||||
@@ -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 СТРУКТУРЫ ДАННЫХ
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user