Provided by: manpages-ru-dev_4.26.0-1_all bug

НАИМЕНОВАНИЕ

       recno - метод доступа к базам нумерованных данных

БИБЛИОТЕКА

       Стандартная библиотека языка C (libc, -lc)

ОБЗОР

       #include <sys/types.h> #include <db.h>

ОПИСАНИЕ

       Примечание: На этой странице описаны интерфейсы, предоставляемые до glibc 2.1. Начиная с glibc 2.2, glibc
       больше не поддерживает эти интерфейсы. Вероятно, вы ищите API, предоставляемое библиотекой libdb.

       Функция  dbopen(3)  —  это  библиотечный  интерфейс  к файлам баз данных. Один из поддерживаемых форматов
       файлов — нумерованные данные. Общее описание методов доступа к базам данных находится  в  dbopen(3).  Эта
       справочная страница содержит только информацию, относящуюся к нумерованным данным.

       Структура  нумерованных  данных  может  описывать записи переменной или фиксированной длины, хранящиеся в
       файле в «плоском» формате, и доступные по логическому номеру записи. Существование записи с номером  пять
       подразумевает  существование  записей  от  одного  до  четырёх  и удаление записи с номером один вызывает
       перенумеровывание записи с номером пять в запись с номером четыре, а также сдвиг  курсора  вниз  на  одну
       запись, если он указывает на запись после номера один.

       Специальная  структура  метода  доступа  к  данным  recno, предоставляемая dbopen(3), определена в <db.h>
       следующим образом:

           typedef struct {
               unsigned long flags;
               unsigned int  cachesize;
               unsigned int  psize;
               int           lorder;
               size_t        reclen;
               unsigned char bval;
               char         *bfname;
           } RECNOINFO;

       Элементы этой структуры определены так:

       flags  Значение флага определяется логическим ИЛИ следующих значений:

              R_FIXEDLEN
                     Записи фиксированной длины без  разделительного  байта.  Полем  reclen  определяется  длина
                     записи,  а  поле  bval  используется  как дополняющий символ. Все вставляемые в базу данных
                     записи, размер которых меньше reclen байт, автоматически дополняются.

              R_NOKEY
                     В интерфейсе, определённом dbopen(3), последовательная выборка записей заполняет  структуры
                     данных  и  ключа вызывающего. Если указан флаг R_NOKEY, то процедурам cursor не обязательно
                     заполнять структуру ключа. Это позволяет приложениям извлекать записи из конца  файлов  без
                     чтения всех промежуточных записей.

              R_SNAPSHOT
                     Этим  флагом  указывается,  чтобы  в  момент  вызова dbopen(3) был сделан снимок (snapshot)
                     файла, а не выполнялось чтение каких-либо не изменённых записей из оригинального файла.

       cachesize
              Предполагаемый максимальный размер кэша памяти в байтах. Эта величина только  рекомендация,  метод
              доступа  скорее  выделит  больше памяти, чем завершится с ошибкой. Если значение cachesize равно 0
              (размер не указан), то используется кэш по умолчанию.

       psize  Метод доступа recno хранит копии своих записей в памяти в виде дерева btree. Это  значение  задаёт
              размер  страниц  (в  байтах),  используемых  для  узлов в этом дереве. Если значение psize равно 0
              (размер страницы не указан), то размер выбирается на основе размера блока ввода-вывода нижележащей
              файловой системы. Подробней смотрите btree(3).

       lorder Порядок расположения байтов, используемый при хранении целых чисел в метаданных базы данных. Число
              должно отражать порядок размещения в виде целого значения; например, порядок «big  endian»  должен
              обозначаться  числом 4321. Если lorder равно 0 (порядок не определён), то используется значение по
              умолчанию, принятое на машине.

       reclen Длина записи фиксированной длины.

       bval   The delimiting byte to be used to mark the end of a record for variable-length  records,  and  the
              pad  character  for  fixed-length  records.  If no value is specified, newlines ("\n") are used to
              mark the end of variable-length records and fixed-length records are padded with spaces.

       bfname Метод доступа recno хранит в памяти копии своих записей в дереве btree. Если  значение  bfname  не
              равно  NULL, то им задаётся имя btree-файла в том же виде, что и при доступе dbopen(3) для доступа
              к btree-файлу.

       Часть «данные» из пары ключ/данные, используемая методом доступа recno, является такой же, как  в  других
       методах  доступа.  Ключ  используется  иначе. Как следует из определения заголовочного файла <db.h>, поле
       ключа data должно быть указателем на  расположение  памяти  типа  recno_t.  Этот  тип,  обычно,  является
       наибольшим  беззнаковым  целочисленным  типом  данных, применяемым в реализации. Значение поля ключа size
       должен задавать размер этого типа.

       Так как в файлах с данными в формате recno могут отсутствовать метаданные, то любые изменения значений по
       умолчанию (например, длина фиксированной записи или разделяющий байт) должны явно указываться каждый  раз
       при открытии файла.

       В  интерфейсе, определённым dbopen(3), использование интерфейса put для создания новой записи повлечёт за
       собой создание множества пустых записей, если номер записи больше, чем номер наибольшей записи, имеющейся
       в базе данных.

ОШИБКИ

       Функции метода доступа recno могут завершиться с ошибкой и присвоить errno любое значение из определённых
       для библиотеки функций dbopen(3), а также:

       EINVAL Попытка добавить слишком большую запись в базу данных фиксированной длины.

ОШИБКИ

       Поддерживаются значения только с прямым и обратным порядком байт.

СМОТРИТЕ ТАКЖЕ

       btree(3), dbopen(3), hash(3), mpool(3)

       Document Processing in a Relational Database System, Michael Stonebraker, Heidi Stettner, Joseph  Kalash,
       Antonin Guttman, Nadene Lynn, Memorandum No. UCB/ERL M82/32, May 1982.

ПЕРЕВОД

       Русский  перевод  этой  страницы  руководства  разработал(и) aereiae <aereiae@gmail.com>, Azamat Hackimov
       <azamat.hackimov@gmail.com>,     Dmitriy     S.     Seregin     <dseregin@59.ru>,     Katrin     Kutepova
       <blackkatelv@gmail.com>,   Lockal   <lockalsash@gmail.com>,  Yuri  Kozlov  <yuray@komyakino.ru>,  Баринов
       Владимир, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

       Этот перевод является свободной программной документацией; он распространяется на условиях  общедоступной
       лицензии  GNU  (GNU  General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

       Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите  об  этом
       разработчику(ам)   по   его(их)  адресу(ам)  электронной  почты  или  по  адресу  списка рассылки русских
       переводчиков.

4.4 Berkeley Distribution                        15 июня 2024 г.                                        recno(3)