Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

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

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

REZUMAT

       #include <wchar.h>

       size_t mbrtowc(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 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.

ATRIBUTE

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

       ┌────────────────────────────────────────┬───────────────────┬────────────────────────────┐
       │InterfațăAtributValoare                    │
       ├────────────────────────────────────────┼───────────────────┼────────────────────────────┤
       │mbrtowc()                               │ Siguranța firelor │ MT-Unsafe race:mbrtowc/!ps │
       └────────────────────────────────────────┴───────────────────┴────────────────────────────┘

STANDARDE

       POSIX.1-2001, POSIX.1-2008, 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  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⟩.