mbrtowc(3)

NUME
mbrtowc - convertește o secvență multi-octet într-un caracter lat

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <wchar.h>

size_t mbrtowc(size_t n;
               wchar_t *restrict pwc, const char s[restrict n],
               size_t n, mbstate_t *restrict ps);

DESCRIERE
Cazul principal pentru această funcție este atunci când s nu este NULL și pwc nu este NULL. În acest caz, funcția mbrtowc() inspectează cel mult n octeți din șirul multioctet începând de la s, extrage următorul caracter multioctet complet, îl convertește într-un caracter lat și îl stochează la *pwc. Se actualizează starea de conversie *ps. În cazul în care caracterul lat convertit nu este L'\0' (caracterul lat null), se returnează numărul de octeți care au fost consumați din s. În cazul în care caracterul lat convertit este L'\0', se reinițiază starea de conversie *ps la starea inițială și se returnează 0.

În cazul în care n octeți care încep la s nu conțin un caracter multioctet complet, mbrtowc() returnează (size_t) -2. Acest lucru se poate întâmpla chiar dacă n >= MB_CUR_MAX, în cazul în care șirul multioctet conține secvențe de deplasare redundante.

Dacă șirul multioctet care începe la s conține o secvență multioctet nevalidă înainte de următorul caracter complet, mbrtowc() returnează (size_t) -1 și configurează errno la EILSEQ. În acest caz, efectele asupra lui *ps sunt nedefinite.

Un caz diferit este atunci când s nu este NULL, dar pwc este NULL. În acest caz, funcția mbrtowc() se comportă ca mai sus, cu excepția faptului că nu stochează în memorie caracterul lat convertit.

Un al treilea caz este atunci când s este NULL. În acest caz, pwc și n sunt ignorate. În cazul în care starea de conversie reprezentată de *ps denotă o conversie incompletă a caracterelor multioctet, funcția mbrtowc() returnează (size_t) -1, stabilește errno la EILSEQ și lasă *ps într-o stare nedefinită. În caz contrar, funcția mbrtowc() plasează *ps în starea inițială și returnează 0.

În toate cazurile de mai sus, dacǎ ps este NULL, se folosește în schimb o stare statică anonimă cunoscută doar de funcția mbrtowc(). Dacă nu, *ps trebuie să fie un obiect mbstate_t valid. Un obiect mbstate_t a poate fi inițializat la starea inițială prin aducerea la zero, de exemplu, folosind

    memset(&a, 0, sizeof(a));

VALOAREA RETURNATĂ
Funcția mbrtowc() returnează numărul de octeți analizați din secvența multioctet care începe la s, dacă a fost recunoscut un caracter lat care nu este L'\0'. Aceasta returnează 0, dacă a fost recunoscut un caracter lat L'\0'. Returnează (size_t) -1 și configurează errno la EILSEQ, în cazul în care a fost întâlnită o secvență multioctet nevalidă. Acesta returnează (size_t) -2 dacă octeții consumați n formează o secvență parțială validă de caractere; trebuie introduse mai multe date ulterior.

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

STANDARDE
C11, POSIX.1-2008.

ISTORIC
POSIX.1-2001, C99.

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

CONSULTAȚI ȘI
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.