.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2009, Linux Foundation, written by Michael Kerrisk .\" .\" a few pieces remain from an earlier version .\" Copyright (C) 2008, Nanno Langstraat .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH endian 3 "3 mai 2023" "Pagini de manual de Linux 6.05.01" .SH 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 .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBuint16_t htobe16(uint16_t \fP\fIhost_16bits\fP\fB);\fP \fBuint16_t htole16(uint16_t \fP\fIhost_16bits\fP\fB);\fP \fBuint16_t be16toh(uint16_t \fP\fIbig_endian_16bits\fP\fB);\fP \fBuint16_t le16toh(uint16_t \fP\fIlittle_endian_16bits\fP\fB);\fP .PP \fBuint32_t htobe32(uint32_t \fP\fIhost_32bits\fP\fB);\fP \fBuint32_t htole32(uint32_t \fP\fIhost_32bits\fP\fB);\fP \fBuint32_t be32toh(uint32_t \fP\fIbig_endian_32bits\fP\fB);\fP \fBuint32_t le32toh(uint32_t \fP\fIlittle_endian_32bits\fP\fB);\fP .PP \fBuint64_t htobe64(uint64_t \fP\fIhost_64bits\fP\fB);\fP \fBuint64_t htole64(uint64_t \fP\fIhost_64bits\fP\fB);\fP \fBuint64_t be64toh(uint64_t \fP\fIbig_endian_64bits\fP\fB);\fP \fBuint64_t le64toh(uint64_t \fP\fIlittle_endian_64bits\fP\fB);\fP .fi .PP .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .ad l .PP \fBhtobe16\fP(), \fBhtole16\fP(), \fBbe16toh\fP(), \fBle16toh\fP(), \fBhtobe32\fP(), \fBhtole32\fP(), \fBbe32toh\fP(), \fBle32toh\fP(), \fBhtobe64\fP(), \fBhtole64\fP(), \fBbe64toh\fP(), \fBle64toh\fP(): .nf Începând cu glibc 2.19: _DEFAULT_SOURCE În glibc până la versiunea 2.19 inclusiv: _BSD_SOURCE .fi .ad .SH 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. .PP Numărul, \fInn\fP, din numele fiecărei funcții indică dimensiunea numărului întreg gestionat de funcție, fie 16, 32 sau 64 de biți. .PP Funcțiile cu nume de forma „htobe\fInn\fP” convertesc din ordinea octeților gazdă în ordinea big\-endian. .PP Funcțiile cu nume de forma „htole\fInn\fP” convertesc din ordinea octeților gazdă în ordinea little\-endian. .PP Funcțiile cu nume de forma „be\fInn\fPtoh” convertesc din ordinea big\-endian în ordinea octeților gazdei. .PP Funcțiile cu nume de forma „le\fInn\fPtoh” convertesc din ordinea little\-endian în ordinea octeților gazdei. .SH VERSIUNI Funcții similare sunt prezente pe BSD, unde fișierul de antet necesar este \fI\fP în loc de \fI\fP. Din nefericire, NetBSD, FreeBSD și glibc nu au urmat convenția originală de denumire OpenBSD pentru aceste funcții, conform căreia componenta \fInn\fP apare întotdeauna la sfârșitul numelui funcției (astfel, de exemplu, în NetBSD, FreeBSD și glibc, echivalentul lui OpenBSD „betoh32” este „be32toh”). .SH STANDARDE Niciunul. .SH ISTORIC glibc 2.9. .PP Aceste funcții sunt similare cu familia de funcții mai veche \fBbyteorder\fP(3). De exemplu, \fBbe32toh\fP() este identică cu \fBntohl\fP(). .PP Avantajul funcțiilor \fBbyteorder\fP(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ă. .SH 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: .PP .in +4n .EX $ \fB./a.out\fP x.u32 = 0x44332211 htole32(x.u32) = 0x44332211 htobe32(x.u32) = 0x11223344 .EE .in .SS "Sursa programului" .\" SRC BEGIN (endian.c) \& .EX #include #include #include #include \& 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\en", x.u32); printf("htole32(x.u32) = %#x\en", htole32(x.u32)); printf("htobe32(x.u32) = %#x\en", htobe32(x.u32)); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fBbswap\fP(3), \fBbyteorder\fP(3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .