wprintf(3) Library Functions Manual wprintf(3) NUME wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - conversia de ieire formatata a caracterelor late BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include #include int wprintf(const wchar_t *restrict format, ...); int fwprintf(FILE *restrict stream, const wchar_t *restrict format, ...); int swprintf(wchar_t wcs[restrict .maxlen], size_t maxlen, const wchar_t *restrict format, ...); int vwprintf(const wchar_t *restrict format, va_list args); int vfwprintf(FILE *restrict stream, const wchar_t *restrict format, va_list args); int vswprintf(wchar_t wcs[restrict .maxlen], size_t maxlen, const wchar_t *restrict format, va_list args); Cerine pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultai feature_test_macros(7)): Toate funciile prezentate mai sus: _XOPEN_SOURCE >= 500 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L DESCRIERE Familia de funcii wprintf() este echivalentul in caractere late al familiei de funcii printf(3). Aceasta realizeaza o ieire formatata a caracterelor late. Funciile wprintf() i vwprintf() efectueaza ieirea de caractere late catre stdout (ieirea standard). stdout nu trebuie sa fie orientata pe octei; a se vedea fwide(3) pentru mai multe informaii. Funciile fwprintf() i vfwprintf() efectueaza ieirea de caractere late catre stream. stream nu trebuie sa fie orientat pe octei; a se vedea fwide(3) pentru mai multe informaii. Funciile swprintf() i vswprintf() efectueaza ieirea de caractere late catre o matrice de caractere late. Programatorul trebuie sa se asigure ca exista spaiu pentru cel puin maxlen caractere late la wcs. Aceste funcii sunt similare funciilor printf(3), vprintf(3), fprintf(3), vfprintf(3), sprintf(3), sprintf(3), vsprintf(3), cu excepia urmatoarelor diferene: o irul format este un ir de caractere late. o Ieirea consta in caractere late, nu in octei. o swprintf() i vswprintf() accepta un argument maxlen, sprintf(3) i vsprintf(3) nu; (snprintf(3) i vsnprintf(3) accepta un argument maxlen, dar aceste funcii nu returneaza -1 la depairea memoriei tampon in Linux). Tratamentul caracterelor de conversie c i s este diferit: c Daca nu este prezent nici un modificator l, argumentul int este convertit intr-un caracter lat printr-un apel la funcia btowc(3), iar caracterul lat rezultat este scris. Daca este prezent un modificator l, se scrie argumentul wint_t (caracter lat). s Daca nu este prezent nici un modificator l: se ateapta ca argumentul const char * sa fie un indicator la o matrice de tip caracter (indicator la un ir de caractere) care conine o secvena de caractere de mai muli octei care incepe in starea iniiala de deplasare. Caracterele din matrice sunt convertite in caractere late (fiecare prin apelarea funciei mbrtowc(3) cu o stare de conversie care incepe in starea iniiala inainte de primul octet). Caracterele late rezultate se scriu pana la (dar fara a include) caracterul lat nul de sfarit (L,,\0"). In cazul in care se specifica o precizie, nu se scriu mai multe caractere late decat numarul specificat. Reinei ca precizia determina numarul de caractere late scrise, nu numarul de octei sau poziii pe ecran. Matricea trebuie sa conina un octet de sfarit nul (,,\0"), cu excepia cazului in care se indica o precizie i aceasta este atat de mica incat numarul de caractere late convertite il atinge inainte de a se ajunge la sfaritul matricei. In cazul in care este prezent un modificator l: se ateapta ca argumentul const wchar_t * sa fie un indicator la o matrice de caractere late. Caracterele late din matrice se scriu pana la (dar fara a include) un caracter lat nul de sfarit. In cazul in care se specifica o precizie, nu se scriu mai multe caractere decat numarul specificat. Matricea trebuie sa conina un caracter lat nul de sfarit, cu excepia cazului in care se indica o precizie i aceasta este mai mica sau egala cu numarul de caractere late din matrice. VALOAREA RETURNATA Funciile returneaza numarul de caractere late scrise, cu excepia caracterului lat de sfarit nul in cazul funciilor swprintf() i vswprintf(). Ele returneaza -1 atunci cand apare o eroare. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +-------------------------------+---------------------+----------------+ |Interfaa | Atribut | Valoare | +-------------------------------+---------------------+----------------+ |wprintf(), fwprintf(), | Sigurana firelor | MT-Safe locale | |swprintf(), vwprintf(), | | | |vfwprintf(), vswprintf() | | | +-------------------------------+---------------------+----------------+ STANDARDE C11, POSIX.1-2008. ISTORIC POSIX.1-2001, C99. NOTE Comportamentul lui wprintf() i altele depinde de categoria LC_CTYPE din configuraia regionala curenta. In cazul in care irul format conine caractere late non-ASCII, programul va funciona corect numai daca categoria LC_CTYPE a configuraiei regionale curente in momentul execuiei este aceeai cu categoria LC_CTYPE a configuraiei regionale curente in momentul compilarii. Acest lucru se datoreaza faptului ca reprezentarea wchar_t este dependenta de platforma i de configuraia regionala; (glibc reprezinta caracterele late folosind punctul de cod Unicode (ISO/IEC 10646) al acestora, dar alte platforme nu fac acest lucru; de asemenea, utilizarea numelor de caractere universale C99 de forma \unnnn nu rezolva aceasta problema). Prin urmare, in programele internaionalizate, irul format ar trebui sa fie format numai din caractere ASCII late sau ar trebui sa fie construit in timpul execuiei intr-un mod internaionalizat (de exemplu, folosind gettext(3) sau iconv(3), urmat de mbstowcs(3)). CONSULTAI I fprintf(3), fputwc(3), fwide(3), printf(3), snprintf(3) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.9.1 15 iunie 2024 wprintf(3)