mbsrtowcs(3) Library Functions Manual mbsrtowcs(3)

mbsrtowcs - convertește un șir de caractere multioctet într-un șir de caractere late (repornibil)

Biblioteca C standard (libc, -lc)

#include <wchar.h>
size_t mbsrtowcs(wchar_t dest[restrict .dsize], const char **restrict src,
                 size_t dsize, mbstate_t *restrict ps);

Dacă dest nu este NULL, convertește șirul multi-octet *src într-un șir de caractere late care începe la dest. Cel mult dsize caractere late sunt scrise în dest. Se actualizează starea de conversie *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.
dsize caractere non-L'\0' late au fost stocate la dest. În acest caz, *src rămâne indicând următoarea secvență multioctet 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 largi scrise în dest, cu excepția caracterului lat nul de sfârșit.

Dacă dest este NULL, dsize este ignorat, iar conversia se desfășoară ca mai sus, cu excepția faptului că nu sunt scrise în memorie caracterele late convertite și că nu există o limită de lungime.

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

Pentru a evita cazul 2 de mai sus, programatorul trebuie să se asigure că dsize este mai mare sau egal cu mbsrtowcs(NULL,src,0,ps)+1.

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

Această funcție este o versiune repornibilă a mbstowcs(3).

Numărul de caractere late care alcătuiesc partea convertită a șirului de caractere late, fără a include caracterul lat de încheiere nul. În cazul în care a fost întâlnită o secvență multioctet nevalidă, se returnează (size_t) -1, iar errno este configurată la EILSEQ.

Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

Interfață Atribut Valoare
mbsrtowcs() Siguranța firelor MT-Unsafe race:mbsrtowcs/!ps

C11, POSIX.1-2008.

POSIX.1-2001, C99.

Comportamentul lui mbsrtowcs() 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.

iconv(3), mbrtowc(3), mbsinit(3), mbsnrtowcs(3), mbstowcs(3)

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.

19 noiembrie 2023 Pagini de manual de Linux 6.06