.\" -*- coding: UTF-8 -*- .\" Copyright 1990-1993, The Regents of the University of California. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH recno 3 "21 сентября 2025 г." "Linux man\-pages 6.18" .UC 7 .SH НАИМЕНОВАНИЕ recno \- метод доступа к базам нумерованных данных .SH БИБЛИОТЕКА Стандартная библиотека языка C (\fIlibc\fP,\ \fI\-lc\fP) .SH СИНТАКСИС .nf \fB#include #include \fP .fi .SH ОПИСАНИЕ \fIПримечание\fP: На этой странице описаны интерфейсы, предоставляемые до glibc 2.1. Начиная с glibc 2.2, glibc больше не поддерживает эти интерфейсы. Вероятно, вы ищите API, предоставляемое библиотекой \fIlibdb\fP. .P Функция \fBdbopen\fP(3) — это библиотечный интерфейс к файлам баз данных. Один из поддерживаемых форматов файлов — нумерованные данные. Общее описание методов доступа к базам данных находится в \fBdbopen\fP(3). Эта справочная страница содержит только информацию, относящуюся к нумерованным данным. .P Структура нумерованных данных может описывать записи переменной или фиксированной длины, хранящиеся в файле в «плоском» формате, и доступные по логическому номеру записи. Существование записи с номером пять подразумевает существование записей от одного до четырёх и удаление записи с номером один вызывает перенумеровывание записи с номером пять в запись с номером четыре, а также сдвиг курсора вниз на одну запись, если он указывает на запись после номера один. .P Специальная структура метода доступа к данным recno, предоставляемая \fBdbopen\fP(3), определена в \fI\fP следующим образом: .P .in +4n .EX typedef struct { unsigned long flags; unsigned int cachesize; unsigned int psize; int lorder; size_t reclen; unsigned char bval; char *bfname; } RECNOINFO; .EE .in .P Элементы этой структуры определены так: .TP \fIflags\fP Значение флага определяется логическим ИЛИ следующих значений: .RS .TP \fBR_FIXEDLEN\fP Записи фиксированной длины без разделительного байта. Полем \fIreclen\fP определяется длина записи, а поле \fIbval\fP используется как дополняющий символ. Все вставляемые в базу данных записи, размер которых меньше \fIreclen\fP байт, автоматически дополняются. .TP \fBR_NOKEY\fP В интерфейсе, определённом \fBdbopen\fP(3), последовательная выборка записей заполняет структуры данных и ключа вызывающего. Если указан флаг \fBR_NOKEY\fP, то процедурам \fIcursor\fP не обязательно заполнять структуру ключа. Это позволяет приложениям извлекать записи из конца файлов без чтения всех промежуточных записей. .TP \fBR_SNAPSHOT\fP Этим флагом указывается, чтобы в момент вызова \fBdbopen\fP(3) был сделан снимок (snapshot) файла, а не выполнялось чтение каких\-либо не изменённых записей из оригинального файла. .RE .TP \fIcachesize\fP Предполагаемый максимальный размер кэша памяти в байтах. Эта величина \fIтолько рекомендация\fP, метод доступа скорее выделит больше памяти, чем завершится с ошибкой. Если значение \fIcachesize\fP равно 0 (размер не указан), то используется кэш по умолчанию. .TP \fIpsize\fP Метод доступа recno хранит копии своих записей в памяти в виде дерева btree. Это значение задаёт размер страниц (в байтах), используемых для узлов в этом дереве. Если значение \fIpsize\fP равно 0 (размер страницы не указан), то размер выбирается на основе размера блока ввода\-вывода нижележащей файловой системы. Подробней смотрите \fBbtree\fP(3). .TP \fIlorder\fP Порядок расположения байтов, используемый при хранении целых чисел в метаданных базы данных. Число должно отражать порядок размещения в виде целого значения; например, порядок «big endian» должен обозначаться числом 4321. Если \fIlorder\fP равно 0 (порядок не определён), то используется значение по умолчанию, принятое на машине. .TP \fIreclen\fP Длина записи фиксированной длины. .TP \fIbval\fP 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 ("\[rs]n") are used to mark the end of variable\-length records and fixed\-length records are padded with spaces. .TP \fIbfname\fP Метод доступа recno хранит в памяти копии своих записей в дереве btree. Если значение \fIbfname\fP не равно NULL, то им задаётся имя btree\-файла в том же виде, что и при доступе \fBdbopen\fP(3) для доступа к btree\-файлу. .P Часть «данные» из пары ключ/данные, используемая методом доступа \fIrecno\fP, является такой же, как в других методах доступа. Ключ используется иначе. Как следует из определения заголовочного файла \fI\fP, поле ключа \fIdata\fP должно быть указателем на расположение памяти типа \fIrecno_t\fP. Этот тип, обычно, является наибольшим беззнаковым целочисленным типом данных, применяемым в реализации. Значение поля ключа \fIsize\fP должен задавать размер этого типа. .P Так как в файлах с данными в формате recno могут отсутствовать метаданные, то любые изменения значений по умолчанию (например, длина фиксированной записи или разделяющий байт) должны явно указываться каждый раз при открытии файла. .P В интерфейсе, определённым \fBdbopen\fP(3), использование интерфейса \fIput\fP для создания новой записи повлечёт за собой создание множества пустых записей, если номер записи больше, чем номер наибольшей записи, имеющейся в базе данных. .SH ОШИБКИ Функции метода доступа \fIrecno\fP могут завершиться с ошибкой и присвоить \fIerrno\fP любое значение из определённых для библиотеки функций \fBdbopen\fP(3), а также: .TP \fBEINVAL\fP Попытка добавить слишком большую запись в базу данных фиксированной длины. .SH "ПРОГРАММНЫЕ ОШИБКИ" Поддерживаются значения только с прямым и обратным порядком байт. .SH "СМОТРИТЕ ТАКЖЕ" \fBbtree\fP(3), \fBdbopen\fP(3), \fBhash\fP(3), \fBmpool\fP(3) .P \fIDocument Processing in a Relational Database System\fP, Michael Stonebraker, Heidi Stettner, Joseph Kalash, Antonin Guttman, Nadene Lynn, Memorandum No.\& UCB/ERL M82/32, May 1982. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) aereiae , Azamat Hackimov , Dmitriy S. Seregin , Katrin Kutepova , Lockal , Yuri Kozlov , Баринов Владимир и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT debian-l10n-russian@lists.debian.org списка рассылки русских переводчиков .ME .