mbrtowc(3) Library Functions Manual mbrtowc(3)

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

Biblioteca C standard (libc, -lc)

#include <wchar.h>
size_t mbrtowc(wchar_t *restrict pwc, const char s[restrict .n],
               size_t n, mbstate_t *restrict ps);

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));

Funcția mbrtowc() returnează numărul de octeți analizați din secvența de mai mulți octeți 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ă nu a putut analiza un caracter multioctet complet, ceea ce înseamnă că n ar trebui să fie mărit.

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

C11, POSIX.1-2008.

POSIX.1-2001, C99.

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

mbsinit(3), mbsrtowcs(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.

2 mai 2024 Pagini de manual de Linux 6.8