mbsnrtowcs(3)

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

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <wchar.h>

size_t mbsnrtowcs(size_t size;
                  wchar_t dest[restrict size], const char **restrict src,
                  size_t nms, size_t size, mbstate_t *restrict ps);

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

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

DESCRIERE
Funcția mbsnrtowcs() este ca și funcția mbsnrtowcs(3), cu excepția faptului că numărul de octeți care urmează să fie convertiți, începând de la *src, este limitat la cel mult nms octeți.

Dacă dest nu este NULL, funcția mbsnrtowcs() convertește cel mult nms octeți din șirul multi-octet *src într-un șir de caractere late care începe la dest. Cel mult size caractere late sunt scrise în dest. Se actualizează starea de deplasare *ps. Conversia se realizează efectiv prin apelarea repetată a mbrtowc(dest, *src, n, ps) unde n este un număr pozitiv, atâta timp cât acest apel reușește, și apoi prin incrementarea dest cu unu și *src cu numărul de octeți consumați. Conversia se poate opri din trei motive:

•   A fost întâlnită o secvență multiocteți nevalidă. În acest caz, *src rămâne indicând către secvența multiocteți nevalidă, (size_t) -1 este returnată, iar errno este configurată la EILSEQ.

•   Limita nms forțează o oprire, sau size caractere de lățime non-L'\0' au fost stocate la dest. În acest caz, *src rămâne îndreptat către următoarea secvență multi-octet care urmează să fie convertită, iar numărul de caractere late scrise în dest este returnat.

•   Șirul multioctet a fost complet convertit, inclusiv caracterul lat nul de la sfârșit ('\0'), ceea ce are ca efect secundar aducerea lui *ps la starea inițială. În acest caz, *src este stabilit la NULL și se returnează numărul de caractere late scrise în dest, cu excepția caracterului lat nul de sfârșit.

În conformitate cu POSIX.1, în cazul în care memoria tampon de intrare se termină cu un caracter incomplet, nu este specificat dacă conversia se oprește la sfârșitul caracterului anterior (dacă există) sau la sfârșitul memoriei tampon de intrare. Implementarea glibc adoptă primul comportament.

Dacă dest este NULL, size este ignorat, iar conversia se desfășoară ca mai sus, cu excepția faptului că nu se scriu în memorie caracterele late convertite ș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ă numai de funcția mbsnrtowcs().

Programatorul trebuie să se asigure că există spațiu pentru cel puțin size caractere la dest.

VALOAREA RETURNATĂ
Funcția mbsnrtowcs() returnează numărul de caractere late care alcătuiesc partea convertită a șirului de caractere late, fără a include caracterul lat de sfârșit nul. În cazul în care a fost întâlnită o secvență multi-octet nevalidă, 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
mbsnrtowcs() | Siguranța firelor | MT-Unsafe race:mbsnrtowcs/!ps

STANDARDE
POSIX.1-2008.

NOTE
Comportamentul lui mbsnrtowcsr() 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), mbrtowc(3), mbsinit(3), mbsrtowcs(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 (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.