wcsnrtombs(3)

NUME
wcsnrtombs - convertește un șir de caractere late într-un șir multi-octet

BIBLIOTECA
Biblioteca C standard (libc, -lc)

REZUMAT
#include <wchar.h>

size_t wcsnrtombs(char dest[restrict .len], const wchar_t **restrict src,
                  size_t nwc, size_t len, mbstate_t *restrict ps);

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

wcsnrtombs():
    Începând cu glibc 2.10
        _POSIX_C_SOURCE >= 200809L
    Înainte de glibc 2.10:
        _GNU_SOURCE

DESCRIERE
Funcția wcsnrtombs() este ca și funcția wcsrtombs(3), cu excepția faptului că numărul de caractere late care urmează să fie convertite, începând de la *src, este limitat la nwc.

Dacă dest nu este NULL, funcția wcsnrtombs() convertește cel mult nwc caractere late din șirul de caractere late *src într-un șir multi-octet care începe la dest. Cel mult len octeți sunt scriși în dest. Se actualizează starea de conversie *ps. Conversia se realizează efectiv prin apelarea repetată a wcrtomb(dest, *src, ps), atâta timp cât acest apel reușește, iar apoi se incrementează dest cu numărul de octeți scriși și *src cu unu. Conversia se poate opri din trei motive:

•   A fost întâlnit un caracter lat care nu poate fi reprezentat ca o secvență de mai mulți octeți (în conformitate cu configurația regională curentă). În acest caz, *src rămâne îndreptat către caracterul lat nevalid, se returnează (size_t) -1, iar errno este configurată la EILSEQ.

•   Caracterele late nwc au fost convertite fără a se întâlni un caracter lat nul (L'\0') sau limita de lungime forțează o oprire. În acest caz, *src rămâne îndreptat către următorul caracter lat care urmează să fie convertit, iar numărul de octeți scris în dest este returnat.

•   Șirul de caractere late a fost complet convertit, inclusiv caracterul lat nul de sfârșit (care are ca efect secundar aducerea lui *ps la starea inițială). În acest caz, *src este setat la NULL, iar numărul de octeți scriși în dest, cu excepția octetului de sfârșit nul ('\0'), este returnat.

Dacă dest este NULL, len este ignorat, iar conversia se desfășoară ca mai sus, cu excepția faptului că octeții convertiți nu sunt scriși în memorie și că nu există o limită de lungime a destinației.

În ambele cazuri de mai sus, dacă ps este NULL, se utilizează în schimb o stare statică anonimă cunoscută doar de funcția wcsnrtombs().

Programatorul trebuie să se asigure că există spațiu pentru cel puțin len octeți la dest.

VALOAREA RETURNATĂ
Funcția wcsnrtombs() returnează numărul de octeți care alcătuiesc partea convertită a secvenței multibyte, fără a include octetul nul de terminare. În cazul în care a fost întâlnit un caracter lat care nu a putut fi convertit, se returnează (size_t) -1, iar errno este configurată la EILSEQ.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
wcsnrtombs() | Siguranța firelor | MT-Unsafe race:wcsnrtombs/!ps

STANDARDE
POSIX.1-2008.

NOTE
Comportamentul lui wcsnrtombs() depinde de categoria LC_CTYPE din configurația regională curentă.

Transmiterea lui NULL ca ps nu este sigură pentru execuția cu mai multe fire.

CONSULTAȚI ȘI
iconv(3), mbsinit(3), wcsrtombs(3)

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

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) 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.