dwww Home | Manual pages | Find package

endian(3)                  Library Functions Manual                  endian(3)

NOM
       htobe16, htole16, be16toh, le16toh, htobe32, htole32, be32toh, le32toh,
       htobe64, htole64,  be64toh,  le64toh  -  convertir  des  valeurs  entre
       l'ordre des octets de l'hôte et l'ordre petit et gros boutiste

BIBLIOTHÈQUE
       Bibliothèque C standard (libc, -lc)

SYNOPSIS
       #include <endian.h>

       uint16_t htobe16(uint16_t host_16bits);
       uint16_t htole16(uint16_t host_16bits);
       uint16_t be16toh(uint16_t big_endian_16bits);
       uint16_t le16toh(uint16_t little_endian_16bits);

       uint32_t htobe32(uint32_t host_32bits);
       uint32_t htole32(uint32_t host_32bits);
       uint32_t be32toh(uint32_t big_endian_32bits);
       uint32_t le32toh(uint32_t little_endian_32bits);

       uint64_t htobe64(uint64_t host_64bits);
       uint64_t htole64(uint64_t host_64bits);
       uint64_t be64toh(uint64_t big_endian_64bits);
       uint64_t le64toh(uint64_t little_endian_64bits);

   Exigences  de  macros  de  test de fonctionnalités pour la glibc (consulter
   feature_test_macros(7)) :

       htobe16(), htole16(), be16toh(), le16toh(), htobe32(), htole32(),
       be32toh(), le32toh(), htobe64(), htole64(), be64toh(), le64toh() :
           Depuis la glibc 2.19 :
               _DEFAULT_SOURCE
           Dans la glibc jusqu'à la version 2.19 incluse :
               _BSD_SOURCE

DESCRIPTION
       Ces  fonctions  convertissent l'encodage des octets de valeurs entières
       depuis l'ordre de l'hôte (l'ordre utilisé par le CPU), vers  ou  depuis
       l'ordre petit et gros boutiste.

       Le nombre, nn, dans le nom de chaque fonction indique la taille des en-
       tiers gérée par la fonction, soit 16, 32 ou 64 bits.

       Les fonctions dont le nom est de la forme « htobenn » convertissent de-
       puis l'ordre des octets de l'hôte vers l'ordre gros boutiste.

       Les fonctions dont le nom est de la forme « htolenn » convertissent de-
       puis l'ordre des octets de l'hôte vers l'ordre petit boutiste.

       Les fonctions dont le nom est de la forme « benntoh » convertissent de-
       puis l'ordre gros boutiste vers l'ordre des octets de l'hôte.

       Les fonctions dont le nom est de la forme « lenntoh » convertissent de-
       puis l'ordre petit boutiste vers l'ordre des octets de l'hôte.

VERSIONS
       Ces fonctions ont été ajoutées dans la glibc 2.9.

STANDARDS
       Ces fonctions ne sont pas standard. Des fonctions similaires sont  pré-
       sentes  sur  les  systèmes  BSD,  où le fichier d'en-têtes est <sys/en-
       dian.h> au lieu de <endian.h>. Cependant, NetBSD, FreeBSD et  la  glibc
       n'ont  pas  suivi le nommage original d'OpenBSD où la composante nn est
       placée à la fin du nom  de  la  fonction  (par  exemple,  sous  NetBSD,
       FreeBSD   et   la   glibc,  l'équivalent  OpenBSD  de  « betoh32 »  est
       « be32toh »).

NOTES
       Ces fonctions sont similaires à la vieille famille de fonctions byteor-
       der(3). Par exemple, be32toh() est identique à ntohl().

       L'avantage  des fonctions de byteorder(3) est que ce sont des fonctions
       standard disponibles sur tous les systèmes UNIX.  D'autre  part,  elles
       ont  été créées pour être utilisées dans un contexte TCP/IP, ce qui si-
       gnifie qu'elles ne gèrent pas les  architectures  64 bits  et  les  va-
       riantes petit boutistes vues dans cette page.

EXEMPLES
       Le  programme ci-dessous affiche les résultats des conversions d'un en-
       tier depuis l'ordre des octets de l'hôte vers  l'ordre  petit  et  gros
       boutiste.  Puisque  l'ordre  de  l'hôte est soit petit boutiste ou soit
       gros boutiste, seule une de ces conversions a un  effet.  Lorsque  vous
       exécutez  ce programme sur un système petit boutiste comme x86-32, vous
       avez :

           $ ./a.out
           x.u32 = 0x44332211
           htole32(x.u32) = 0x44332211
           htobe32(x.u32) = 0x11223344

   Source du programme

       #include <endian.h>
       #include <stdint.h>
       #include <stdio.h>
       #include <stdlib.h>

       int
       main(void)
       {
           union {
               uint32_t u32;
               uint8_t arr[4];
           } x;

           x.arr[0] = 0x11;     /* octet d'adresse basse */
           x.arr[1] = 0x22;
           x.arr[2] = 0x33;
           x.arr[3] = 0x44;     /* octet d'adresse haute */

           printf("x.u32 = %#x\n", x.u32);
           printf("htole32(x.u32) = %#x\n", htole32(x.u32));
           printf("htobe32(x.u32) = %#x\n", htobe32(x.u32));

           exit(EXIT_SUCCESS);
       }

VOIR AUSSI
       bswap(3), byteorder(3)

TRADUCTION
       La traduction française de cette page de manuel a été créée par  Chris-
       tophe  Blaess  <https://www.blaess.fr/christophe/>, Stéphan Rafin <ste-
       phan.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.cou-
       lon@wanadoo.fr>,  Julien  Cristau <jcristau@debian.org>, Thomas Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François  <nicolas.francois@centra-
       liens.net>,  Florentin  Duneau <fduneau@gmail.com>, Simon Paillard <si-
       mon.paillard@resel.enst-bretagne.fr>,   Denis   Barbier    <barbier@de-
       bian.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⟩.

Pages du manuel de Linux 6.03   7 janvier 2023                       endian(3)

Generated by dwww version 1.15 on Sat Jun 29 01:32:35 CEST 2024.