Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       htobe16,  htole16,  be16toh,  le16toh,  htobe32,  htole32,  be32toh,  le32toh, htobe64, htole64, htole64,
       be64toh, le64toh - convertește valorile între gazdă și ordinea octeților big-/little-endian

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #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);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       htobe16(), htole16(), be16toh(), le16toh(), htobe32(), htole32(), be32toh(), le32toh(), htobe64(),
       htole64(), be64toh(), le64toh():
           Începând cu glibc 2.19:
               _DEFAULT_SOURCE
           În glibc până la versiunea 2.19 inclusiv:
               _BSD_SOURCE

DESCRIERE

       Aceste funcții convertesc codificarea pe octeți a valorilor întregi din  ordinea  pe  octeți  pe  care  o
       utilizează  unitatea centrală de procesare curentă („gazda”) în și din ordinea de octeți little-endian și
       big-endian.

       Numărul, nn, din numele fiecărei funcții indică dimensiunea numărului întreg gestionat  de  funcție,  fie
       16, 32 sau 64 de biți.

       Funcțiile cu nume de forma „htobenn” convertesc din ordinea octeților gazdă în ordinea big-endian.

       Funcțiile cu nume de forma „htolenn” convertesc din ordinea octeților gazdă în ordinea little-endian.

       Funcțiile cu nume de forma „benntoh” convertesc din ordinea big-endian în ordinea octeților gazdei.

       Funcțiile cu nume de forma „lenntoh” convertesc din ordinea little-endian în ordinea octeților gazdei.

VERSIUNI

       Funcții  similare  sunt  prezente  pe  BSD,  unde fișierul de antet necesar este <sys/endian.h> în loc de
       <endian.h>. Din nefericire, NetBSD, FreeBSD și glibc nu au urmat convenția originală de denumire  OpenBSD
       pentru  aceste  funcții,  conform  căreia  componenta  nn apare întotdeauna la sfârșitul numelui funcției
       (astfel, de exemplu, în NetBSD, FreeBSD și glibc, echivalentul lui OpenBSD „betoh32” este „be32toh”).

STANDARDE

       Niciunul.

ISTORIC

       glibc 2.9.

       Aceste funcții sunt similare cu familia de funcții mai veche byteorder(3).  De  exemplu,  be32toh()  este
       identică cu ntohl().

       Avantajul  funcțiilor  byteorder(3) este că sunt funcții standard disponibile pe toate sistemele UNIX. Pe
       de altă parte, faptul că au fost concepute pentru a fi utilizate  în  contextul  TCP/IP  înseamnă  că  nu
       dispun de variantele pe 64 de biți și little-endian descrise în această pagină.

EXEMPLE

       Programul  de  mai  jos afișează rezultatele conversiei unui număr întreg din ordinea octeților gazdei în
       ordinea octeților little-endian și big-endian. Deoarece ordinea octeților gazdei este fie  little-endian,
       fie  big-endian,  numai  una dintre aceste conversii va avea efect. Atunci când rulăm acest program pe un
       sistem little-endian, cum ar fi x86-32, vom vedea următoarele:

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

   Sursa programului

       #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;    /* Cel mai mic octet de adresă */
           x.arr[1] = 0x22;
           x.arr[2] = 0x33;
           x.arr[3] = 0x44;    /* Cel mai mare octet de adresă */

           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);
       }

CONSULTAȚI ȘI

       bswap(3), byteorder(3)

TRADUCERE

       Traducerea   în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel    Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3 sau o
       versiune  ulterioară  cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se   asumă   NICIO
       RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                   15 iunie 2024                                        endian(3)