Provided by: manpages-fr-dev_4.15.0-9_all bug

NOM

       recno - Méthodes d'accès aux bases de données avec enregistrements numérotés

SYNOPSIS

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

DESCRIPTION

       NOTE :  cette page décrit des interfaces fournies par la glibc jusque dans sa version 2.1.
       Depuis la version 2.2, la glibc ne fournit plus ces interfaces. Veuillez consulter les API
       fournies par la bibliothèque libdb.

       La routine dbopen(3) est l'interface de bibliothèque pour les fichiers de base de données.
       L'un des formats de fichier pris en charge est celui avec  enregistrements  numérotés.  La
       description  générale  des méthodes d'accès à une base de données est fournie dans la page
       de manuel dbopen(3). La page présente ne  décrit  que  les  informations  spécifiques  aux
       enregistrements numérotés.

       La  structure  de  cette  base  de  données  est  une série d'enregistrements de longueurs
       variables ou fixes, stockés dans un fichier  linéaire,  et  auxquels  on  accède  par  les
       numéros  logiques  d'enregistrement.  L'existence  de  l'enregistrement  numéro 5 implique
       l'existence  des  enregistrements 1  à 4,  et  l'effacement  du   numéro 1   entraîne   la
       renumérotation  de  l'enregistrement 5 en 4, ainsi que le déplacement d'un cran du curseur
       s'il était positionné après l'enregistrement 1.

       La structure de données spécifique pour l'accès aux enregistrements numérotés, et que l'on
       transmet à dbopen(3) est définie dans <db.h> ainsi :

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

       Les éléments de cette structure sont les suivants :

       drapeaux
              La  valeur de ce champ est calculée avec un OU binaire sur certaines des constantes
              suivantes :

              R_FIXEDLEN
                     Les enregistrements ont une taille fixe, et  non  pas  délimités.  Le  champ
                     reclen  de la structure indique la longueur de l'enregistrement, et le champ
                     bval contient le caractère à utiliser pour les remplissages éventuels.  Tout
                     enregistrement, inséré dans la base de données, ayant moins de reclen octets
                     de long sera automatiquement allongé.

              R_NOKEY
                     Avec l'interface spécifiée par dbopen(3), le parcours séquentiel renseigne à
                     la  fois  la  structure  clé  de l'appelant, et la structure des données. Si
                     l'argument R_NOKEY est utilisé, les routines de gestion du curseur  ne  sont
                     pas  obligées  de  remplir  la  structure  clé. Cela permet aux applications
                     d'accéder à des enregistrements en fin de fichier sans avoir à  relire  tous
                     les enregistrements précédents.

              R_SNAPSHOT
                     Ce drapeau demande qu'une image du fichier soit saisie lorsque dbopen(3) est
                     ouvert, plutôt que de lire tout enregistrement non modifié dans  le  fichier
                     original.

       cachesize
              Une  taille  maximale  suggérée de mémoire cache, en octets. Cela n'a qu'une valeur
              indicative,  et  les  méthodes  d'accès  alloueront  plus  de  mémoire  plutôt  que
              d'échouer.  Si  cachesize vaut 0 (pas de taille indiquée) on utilise une valeur par
              défaut.

       psize  La méthode d'accès recno stocke les copies en mémoire de ses  enregistrements  dans
              un  arbre  B-tree. Cette valeur est la taille (en octets) des pages à utiliser pour
              les nœuds de cet arbre. Si psize vaut 0 (pas de taille  indiquée),  une  taille  de
              page  est  choisie  en  fonction des tailles de blocs d'entrée-sortie du système de
              fichiers sous-jacent. Consultez btree(3) pour plus d'informations.

       lorder L'ordre des octets des entiers stockés dans la base  de  données.  Ce  nombre  doit
              représenter  l'ordre  sous  forme d'entier. Par exemple, l'ordre poids faible poids
              fort (gros boutiste) est représenté par le nombre 4321.  Si  lorder  vaut 0  (aucun
              ordre indiqué), on utilise l'ordre des octets du système hôte.

       reclen La longueur des enregistrements de taille fixe.

       bval   L'octet de marquage servant à délimiter les enregistrements de longueurs variables,
              et l'octet de remplissage pour les enregistrements de taille fixe. Si aucune valeur
              n'est  indiquée,  le  caractère fin-de-ligne « \n » est utilisé comma délimiteur et
              les enregistrements de tailles fixes sont complétés avec des espaces.

       bfname La méthode d'accès recno stocke les copies en mémoire de ses  enregistrements  dans
              un  arbre  B-tree.  Si  bfname n'est pas NULL, il indique le nom du fichier B-tree,
              comme s'il s'agissait du nom du fichier pour un appel à dbopen(3).

       La partie « donnée » des paires clés/donnéees utilisées par la méthode d'accès  recno  est
       la  même  que pour les autres méthodes d'accès. La clé est différente. Le champ data de la
       clé doit être un pointeur sur un emplacement mémoire du type recno_t, tel qu'il est défini
       dans  le  fichier  d'en-tête  <db.h>.  Ce  type  est  normalement  le plus grand des types
       d'entiers non signés disponibles pour l'implémentation. Le champ  size  doit  contenir  la
       longueur de ce type de donnée.

       Comme  il  ne  peut  pas  y  avoir  de méta-données associées aux fichiers sous-jacent aux
       méthodes recno, tout changement par rapport aux valeurs par défaut (par  exemple  longueur
       des  enregistrements  fixes,  ou  caractère  séparateur) doit être indiqué explicitement à
       chaque fois que le fichier est ouvert.

       Avec l'interface indiquée par dbopen(3), l'utilisation de la routine  put  pour  créer  un
       nouvel  enregistrement causera la création de plusieurs enregistrements vides si le numéro
       d'enregistrement est supérieur de plus d'une unité au plus grand numéro déjà présent  dans
       la base de données.

ERREURS

       Les  routines  des  méthodes d'accès recno peuvent échouer et remplir errno avec n'importe
       quelle erreur indiquée par la routine dbopen(3) ou la suivante :

       EINVAL On a essayé d'ajouter un enregistrement trop grand dans une base  de  données  avec
              longueurs fixes.

BOGUES

       Seuls  les  ordres  d'octets  gros boutiste (big-endian) et petit boutiste (little-endian)
       fonctionnent.

VOIR AUSSI

       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.

COLOPHON

       Cette  page  fait partie de la publication 5.13 du projet man-pages Linux. Une description
       du projet et des instructions pour signaler des anomalies et la dernière version de  cette
       page peuvent être trouvées à l'adresse https://www.kernel.org/doc/man-pages/.

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier <barbier@debian.org> et David Prévot <david@tilapin.org>

       Cette traduction est une documentation libre ; veuillez vous reporter  à  la  GNU  General
       Public   License   version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  concernant  les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à ⟨debian-l10n-french@lists.debian.org⟩.