Обрезка и зависимости
| Публичный макрос выбора | Макрос реализации | Прямые зависимости |
|---|---|---|
XRT_MODULE_XLONL_CORE | XRT_FEATURE_XLONL_CORE | core |
XRT_MODULE_XLONL_READ | XRT_FEATURE_XLONL_READ | xlonl_core, xlon_read |
XRT_MODULE_XLONL_WRITE | XRT_FEATURE_XLONL_WRITE | xlonl_core, xlon_write |
XRT_MODULE_XLONL_FILE | XRT_FEATURE_XLONL_FILE | xlonl_read, xlonl_write, file_whole |
XRT_MODULE_XLONL | XRT_FEATURE_XLONL | xlonl_file |
Заголовочный файл — <xrt/xlonl.h>, его можно подключить и через зонтичный <xrt.h>. Выбор только чтения или только записи не подключает файловый модуль.
Стабильный контракт
- По умолчанию пустые строки игнорируются: пустые строки и строки только из ASCII-пробелов, табуляций и CR. Принимаются LF, CRLF и их сочетания; одиночный CR не является разделителем записей. Символы Юникода никогда не превращают строку в пустую.
- Пустой ввод и ввод из одних пустых строк возвращают пустой Array. Строгий режим пустых строк по-прежнему принимает ввод нулевой длины и один завершающий перевод строки после последней записи; лишние пустые строки — ошибка.
- Строка должна содержать ровно одно полное значение; последней полной записи разрешено не иметь завершающего перевода строки. Значения на нескольких строках, несколько корневых значений в одной строке, BOM, некорректный UTF-8 и оборванная последняя запись — всё это ошибки.
- Экранированный перевод строки внутри строки не разделяет записи. Записи-массивы сохраняют вложенность: текст
[]\nдаёт Array с одним пустым массивом. - Десериализация передаёт владение Array только после успеха всех записей; при ошибке возвращается C NULL и освобождаются все частичные результаты.
- Корнем сериализации должен быть
XVALUE_ARRAY; null, пустая строка и пустые контейнеры — настоящие записи. Стратегия SKIP не может пропустить всю запись, она действует только внутри одного корневого значения. - Вывод компактный, к каждой записи добавляется LF, пустой Array даёт ноль байт. Конфигурация PRETTY отвергается. Конфигурация снимается по значению; изменение исходной конфигурации в обратном вызове не влияет на текущий вызов.
Validповторяет синтаксическую проверку XLON без построения DOM: пустые строки игнорируются, проверяются накопительные бюджеты по умолчанию и встроенные теги, политика повторных ключей DOM не участвует.- Файловая запись сначала полностью сериализует в памяти, затем атомарно заменяет файл; при ошибке сериализации цель не изменяется. Синхронный вывод через обратный вызов может успеть зафиксировать часть записей до ошибки; эти байты нельзя откатить.
- Однострочные комментарии и висячие запятые — расширения совместимости, включаемые только внутри Record; они не могут продолжаться между физическими строками.
- XLONL поддерживает теги bytes, time, set, intmap и не конечные float, а также явные пользовательские вызовы кодирования; объекты и побочные эффекты, созданные пользовательскими вызовами, лежат на ответственности вызывающего, накопительный бюджет значений считает входные синтаксические значения без обхода созданных вызовами объектов, а накопительный бюджет декодирования считает только встроенные теги bytes.
Потоки и владение: API не содержит неявных блокировок; каждый вызов владеет независимым рабочим пространством, совместный изменяемый ввод синхронизирует вызывающий. Запись выполняется по снимку backing внешнего Array, поэтому во время обратных вызовов действуют правила владения поддеревом Value. Текст ввода и конфигурация заимствуются до возврата вызова; результирующий Array освобождается через xrtValueRelease, результирующая строка — через xrtFree. Выходной обратный вызов потребляет байты до возврата.
Константы
| Константа | Значение | Смысл |
|---|---|---|
XXLONL_READ_REJECT_EMPTY_LINES | UINT32_C(0x00000001) | Пустые строки становятся ошибкой; по умолчанию выключено. |
Конфигурация обязана быть инициализирована через Init; все бюджеты ненулевые. Значения Record по умолчанию задают существующие функции инициализации XLON. Общий ввод/вывод по умолчанию 64 МиБ; количество записей и синтаксических значений — 1000000. Накопительный бюджет декодирования встроенных тегов bytes по умолчанию 64 МиБ.
xxlonlerrorтип
Ошибки получаются через xrtGetError() с доменом формата xrt.xlonl; ошибки аргументов и нижележащий OOM могут напрямую возвращаться как ошибки Core. Обёртки RECORD/OUTPUT/IO сохраняют Kind причины. Если выделение памяти для самой обёртки не удалось, сохраняется исходная ошибка-причина; данные о позиции не гарантируются.
| Значение | Смысл |
|---|---|
XXLONL_ERROR_CONFIG | Конфигурация не инициализирована, ненулевые зарезервированные биты, нулевой бюджет или включён PRETTY. |
XXLONL_ERROR_SYNTAX | Пустая строка в строгом режиме пустых строк. |
XXLONL_ERROR_LIMIT | Исчерпан общий или одиночный бюджет. |
XXLONL_ERROR_RECORD | Ошибка кодирования/декодирования одного значения или добавления его в Array; Cause сохраняет конкретную причину. |
XXLONL_ERROR_TYPE | Корень сериализации не Array. |
XXLONL_ERROR_OUTPUT | Ошибка синхронного выходного обратного вызова. |
XXLONL_ERROR_IO | Ошибка чтения файла с лимитом или атомарной замены файла. |
XXLONL_ERROR_STATE | Зарезервированный код ошибки состояния построчной обработки. |
xxlonllocationтип
| Поле | Тип | Смысл |
|---|---|---|
Offset | size_t | Смещение в байтах от нуля в исходном вводе. |
Line | size_t | Одноразовый физический номер строки, отсчитываемый с единицы по LF; CRLF считается одной строкой, игнорируемые пустые строки тоже считаются. |
Column | size_t | Номер байта UTF-8 в текущей физической строке, с единицы; не в символах Юникода. |
RecordIndex | size_t | Индекс записи с нуля; пустые строки его не увеличивают, ошибка пустой строки указывает на индекс следующей ожидаемой записи. |
xxlonlreadflagтип
| Значение | Смысл |
|---|---|
XXLONL_READ_REJECT_EMPTY_LINES | Превращает игнорируемые по умолчанию пустые строки в синтаксические ошибки. |
xxlonlreadconfigтип
| Поле | Тип | Смысл |
|---|---|---|
Record | xxlonreadconfig | Конфигурация одной записи; MaxInputBytes/MaxOutputBytes не включают разделители CRLF/LF, глубина считается от корня каждой записи. |
Flags | uint32 | По умолчанию 0; XXLONL_READ_REJECT_EMPTY_LINES включает ошибки пустых строк. |
MaxInputBytes | size_t | Предел всего исходного ввода, включая игнорируемые пустые строки и все разделители; по умолчанию 64 МиБ. |
MaxRecords | size_t | Предел числа непустых записей, равен максимальному числу элементов результирующего Array; по умолчанию 1000000. |
MaxTotalValues | size_t | Накопительный предел синтаксических значений по всем записям, включая отброшенные политикой повторных ключей и исключая синтезируемый Array; по умолчанию 1000000. |
MaxTotalDecodedBytes | size_t | Предел накопительных декодированных байт встроенных тегов bytes, проверяется перед выделением буфера; по умолчанию 64 МиБ. |
Reserved | uint32[4] | Зарезервированное место; должно быть целиком нулевым. |
xxlonlwriteconfigтип
| Поле | Тип | Смысл |
|---|---|---|
Record | xxlonwriteconfig | Конфигурация одной записи; MaxInputBytes/MaxOutputBytes не включают разделители CRLF/LF, глубина считается от корня каждой записи. |
MaxOutputBytes | size_t | Предел всех выходных байт, включая каждый LF и исключая завершающий NUL результата; по умолчанию 64 МиБ. |
MaxRecords | size_t | Предел числа непустых записей, равен максимальному числу элементов результирующего Array; по умолчанию 1000000. |
Reserved | uint32[4] | Зарезервированное место; должно быть целиком нулевым. |
xrtXlonlErrorLocationфункция
Читает глобальное байтовое смещение, физические строку/столбец с единицы и индекс записи с нуля; без позиции вывод не изменяется.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pError | вход | допускается null; заимствование только для чтения | Читает позицию из ошибки этого формата; возвращает false при отсутствии позиции или чужом домене ошибки. |
pLocation | выход | не null | При успехе заполняется глобальной позицией; при ошибке содержимое не изменяется. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Позиция прочитана. | — |
| false | Нет позиции или неверный аргумент. | Вывод позиции не изменён; само отсутствие позиции не устанавливает ошибку. |
XERR_ARGUMENT— выход позиции равен null.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlErrorLocation в полной программе; при ошибке переход к единой очистке.
if ( !xrtXlonlErrorLocation(xrtGetError(), &Location) ) goto done;
xrtXlonlReadConfigInitфункция
Инициализирует пропуск пустых строк по умолчанию, строгий синтаксис одной записи и ограниченные накопительные бюджеты.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pConfig | выход | не null | Задаёт значения по умолчанию и обнуляет зарезервированные поля. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| void | Инициализация завершена. | Нулевой указатель устанавливает ошибку аргумента. |
XERR_ARGUMENT— выход конфигурации равен null.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlReadConfigInit в полной программе; при ошибке переход к единой очистке.
xrtXlonlReadConfigInit(&Read);
xrtXlonlParseфункция
Разбирает последовательность записей с конфигурацией по умолчанию; при успехе возвращает Array во владение, пустой ввод даёт пустой Array.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
Text | вход | явная длина в байтах; NULL Data только при нулевой длине | Весь текст заимствуется до возврата вызова; ввод не обязан завершаться NUL. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Array во владение вызывающего. | — |
| NULL | Ошибка аргументов, бюджета, синтаксиса или ресурсов. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlParse в полной программе; при ошибке переход к единой очистке.
pArray = xrtXlonlParse(XRT_STR_LITERAL("{\"id\":1}\n\n[2,3]\r\nnull\n"));
if ( pArray == NULL ) goto done;
xrtXlonlReadфункция
Разбирает все записи по конфигурации; при ошибке освобождает частичные результаты и возвращает NULL. Результат освобождается через xrtValueRelease.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
Text | вход | явная длина в байтах; NULL Data только при нулевой длине | Весь текст заимствуется до возврата вызова; ввод не обязан завершаться NUL. |
pConfig | вход | не null; должен быть инициализирован | Конфигурация одной записи и накопительные бюджеты; источник не изменяется данным вызовом. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Array во владение вызывающего. | — |
| NULL | Ошибка аргументов, бюджета, синтаксиса или ресурсов. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlRead в полной программе; при ошибке переход к единой очистке.
pRead = xrtXlonlRead((xstrview){ Text, Size }, &Read);
if ( pRead == NULL ) goto done;
xrtXlonlValidфункция
По умолчанию игнорирует пустые строки и проверяет построчный синтаксис и накопительные бюджеты без построения DOM Value; политика повторных ключей не участвует.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
Text | вход | явная длина в байтах; NULL Data только при нулевой длине | Весь текст заимствуется до возврата вызова; ввод не обязан завершаться NUL. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Все непустые строки прошли проверку синтаксиса и бюджетов по умолчанию. | — |
| false | Операция не выполнена. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlValid в полной программе; при ошибке переход к единой очистке.
if ( !xrtXlonlValid((xstrview){ Text, Size }) ) goto done;
xrtXlonlWriteConfigInitфункция
Инициализирует компактный построчный вывод, разделение LF и ограниченные накопительные бюджеты; конфигурация PRETTY недопустима.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pConfig | выход | не null | Задаёт значения по умолчанию и обнуляет зарезервированные поля. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| void | Инициализация завершена. | Нулевой указатель устанавливает ошибку аргумента. |
XERR_ARGUMENT— выход конфигурации равен null.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlWriteConfigInit в полной программе; при ошибке переход к единой очистке.
xrtXlonlWriteConfigInit(&Write);
xrtXlonlStringifyфункция
Записывает каждый элемент Array одной строкой; возвращает завершённый NUL текст, освобождаемый через xrtFree. При ошибке необязательный pSize не изменяется.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pArray | вход | не null и имеет тип XVALUE_ARRAY | Сериализуемые элементы; вызов не потребляет владеющую ссылку вызывающего. |
pSize | выход | допускается null | При успехе принимает число байт, включая LF и исключая NUL; при ошибке не изменяется. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Завершённый NUL текст во владение; пустой вывод всё равно возвращает освобождаемую строку. | — |
| NULL | Ошибка конфигурации, типа, кодирования или ресурсов. | pSize не изменён; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_TYPE— корень сериализации не Array.XERR_UNSUPPORTED— одно значение не кодируется выбранным форматом.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlStringify в полной программе; при ошибке переход к единой очистке.
Text = xrtXlonlStringify(pArray, &Size); if ( Text == NULL ) goto done;
xrtXlonlWriteфункция
Выводит каждую запись и её LF в синхронный обратный вызов по кускам; заимствованные байты действительны только во время вызова, зафиксированные до ошибки байты откатить нельзя.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
pArray | вход | не null и имеет тип XVALUE_ARRAY | Сериализуемые элементы; вызов не потребляет владеющую ссылку вызывающего. |
pConfig | вход | не null; должен быть инициализирован | Конфигурация одной записи и накопительные бюджеты; источник не изменяется данным вызовом. |
pWrite | вход | ненулевой синхронный обратный вызов | Потребляет заимствованные байты кусками; возврат false прерывает вывод. |
pUserData | вход | допускается null | Как есть передаётся синхронному выходному обратному вызову. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Весь вывод завершён. | — |
| false | Операция не выполнена. | Ссылки ввода остаются у вызывающего; зафиксированные байты откатить нельзя, ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_TYPE— корень сериализации не Array.XERR_UNSUPPORTED— одно значение не кодируется выбранным форматом.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlWrite в полной программе; при ошибке переход к единой очистке.
if ( !xrtXlonlWrite(pArray, &Write, discard, NULL) ) goto done;
xrtXlonlParseFileфункция
Читает файл с лимитом по умолчанию и возвращает Array во владение.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
sPath | вход | ненулевой путь, завершённый NUL | Читаемый файл либо целевой файл атомарной замены. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Array во владение вызывающего. | — |
| NULL | Ошибка аргументов, бюджета, синтаксиса или ресурсов. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlParseFile в полной программе; при ошибке переход к единой очистке.
pRead = xrtXlonlParseFile(Path); if ( pRead == NULL ) goto done;
xrtXlonlReadFileфункция
Читает файл с общим лимитом ввода и разбирает построчно; при ошибке частичный Array не возвращается.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
sPath | вход | ненулевой путь, завершённый NUL | Читаемый файл либо целевой файл атомарной замены. |
pConfig | вход | не null; должен быть инициализирован | Конфигурация одной записи и накопительные бюджеты; источник не изменяется данным вызовом. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| не null | Array во владение вызывающего. | — |
| NULL | Ошибка аргументов, бюджета, синтаксиса или ресурсов. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_PROTOCOL— непустая строка не является одним полным корректным значением, либо в строгом режиме встречена пустая строка; ошибка одной записи сохраняет нижележащую цепочку причин.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlReadFile в полной программе; при ошибке переход к единой очистке.
pRead = xrtXlonlReadFile(Path, &Read); if ( pRead == NULL ) goto done;
xrtXlonlStringifyFileфункция
Полностью сериализует Array с конфигурацией по умолчанию, затем атомарно заменяет файл.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
sPath | вход | ненулевой путь, завершённый NUL | Читаемый файл либо целевой файл атомарной замены. |
pArray | вход | не null и имеет тип XVALUE_ARRAY | Сериализуемые элементы; вызов не потребляет владеющую ссылку вызывающего. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Весь вывод завершён. | — |
| false | Операция не выполнена. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_TYPE— корень сериализации не Array.XERR_UNSUPPORTED— одно значение не кодируется выбранным форматом.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlStringifyFile в полной программе; при ошибке переход к единой очистке.
if ( !xrtXlonlStringifyFile(Path, pArray) ) goto done;
xrtXlonlWriteFileфункция
Полностью сериализует с расширенной конфигурацией, затем атомарно заменяет файл; при ошибке сериализации исходный файл сохраняется.
Параметры
| Параметр | Направление | Ограничения | Описание |
|---|---|---|---|
sPath | вход | ненулевой путь, завершённый NUL | Читаемый файл либо целевой файл атомарной замены. |
pArray | вход | не null и имеет тип XVALUE_ARRAY | Сериализуемые элементы; вызов не потребляет владеющую ссылку вызывающего. |
pConfig | вход | не null; должен быть инициализирован | Конфигурация одной записи и накопительные бюджеты; источник не изменяется данным вызовом. |
| Возврат | Смысл | Состояние при ошибке |
|---|---|---|
| true | Весь вывод завершён. | — |
| false | Операция не выполнена. | Частичный результат не возвращается; ошибка получается через xrtGetError(). |
XERR_ARGUMENT— обязательный указатель равен null, недопустимое поле конфигурации или зарезервированный бит.XERR_MEMORY— не удалось выделить рабочую область, результат или структурную ошибку.XERR_RANGE— исчерпан одиночный или накопительный бюджет.XERR_TYPE— корень сериализации не Array.XERR_UNSUPPORTED— одно значение не кодируется выбранным форматом.XERR_IO— файловая операция либо сбой выходного обратного вызова без конкретной ошибки; прочие Kind нижележащей причины сохраняются как есть.
Прочие ошибки кодирования одной записи наследуют конкретные Kind и код их Cause.
ПримерПроверено компиляцией
xlonl · Вызов xrtXlonlWriteFile в полной программе; при ошибке переход к единой очистке.
if ( !xrtXlonlWriteFile(Path, pArray, &Write) ) goto done;
Индекс константконстанта
Следующие константы определены в заголовочном файле этой страницы; их смысл — в комментариях публичного заголовка.
| Константа | Описание |
|---|---|
| XXLONL_ERROR_CONFIG | См. комментарии в заголовке |
| XXLONL_ERROR_IO | См. комментарии в заголовке |
| XXLONL_ERROR_LIMIT | См. комментарии в заголовке |
| XXLONL_ERROR_OUTPUT | См. комментарии в заголовке |
| XXLONL_ERROR_RECORD | См. комментарии в заголовке |
| XXLONL_ERROR_STATE | См. комментарии в заголовке |
| XXLONL_ERROR_SYNTAX | См. комментарии в заголовке |
| XXLONL_ERROR_TYPE | См. комментарии в заголовке |
| XXLONL_READ_REJECT_EMPTY_LINES | См. комментарии в заголовке |