mbtowc

Autres langues

Langue: pl

Autres versions - même langue

Version: 2001-07-04 (openSuse - 09/10/07)

Section: 3 (Bibliothèques de fonctions)

NAZWA

mbtowc - przekszta³ca ci±g wielobajtowy na znak szeroki

SK£ADNIA


#include <stdlib.h>



int mbtowc(wchar_t *pwc, const char *s, size_t n);

OPIS

Podstawow± dla tej funkcji jest sytuacja gdy s jest ró¿ne od NULL i pwc jest ró¿ne od NULL. W tym przypadku, funkcja mbtowc sprawdza co najwy¿ej n bajtów ci±gu wielobajtowego, zaczynaj±c od s, wydziela nastêpny pe³ny znak wielobajtowy, przetwarza go na znak szeroki i umieszcza w *pwc. Aktualizuje ona wewnêtrzny, znany tylko funkcji mbtowc, stan przesuniêty. Je¶li s nie wskazuje na bajt '\0', funkcja zwraca liczbê bajtów s, które zosta³y zu¿yte; w pozosta³ych przypadkach zwracane jest 0.

Je¶li n bajtów, poczynaj±c od s nie zawiera pe³nego znaku wielobajtowego, lub je¶li zawieraj± one niepoprawny ci±g wielobajtowy, mbtowc zwraca -1. Mo¿e siê to zdarzyæ nawet gdy n >= MB_CUR_MAX, je¶li wielobajtowy ³añcuch zawiera nadmiarowe ci±gi przesuniêæ.

Inna sytuacja ma miejsce, gdy s jest ró¿ne od NULL, ale pwc jest równe NULL. Wówczas funkcja mbtowc zachowuje siê jak powy¿ej, z tym wyj±tkiem, ¿e nie przechowuje przetworzonego znaku szerokiego w pamiêci.

Trzecia sytuacja wystêpuje, gdy s jest równe NULL. Wówczas pwc i n s± ignorowane. Funkcja mbtowc sprowadza stan przesuniêty, znany tylko tej funkcji, do stanu wyj¶ciowego i zwraca warto¶æ ró¿n± od zera gdy kodowanie posiada nietrywialne stany przesuniête, a zero je¶li kodowanie jest bezstanowe.

WARTO¦Æ ZWRACANA

Je¶li s jest ró¿ne od NULL, funkcja mbtowc zwraca liczbê zu¿ytych bajtów, poczynaj±c od s, a 0 je¶li s wskazuje na bajt null, lub -1 w przypadku b³êdu.

Je¶li s jest równe NULL, funkcja mbtowc zwraca warto¶æ ró¿n± od zera gdy kodowanie posiada nietrywialne stany przesuniête, a zero gdy kodowanie jest bezstanowe.

ZGODNE Z

ISO/ANSI C, UNIX98

ZOBACZ TAK¯E

mbrtowc(3), mbstowcs(3), MB_CUR_MAX(3)

UWAGI

Zachowanie mbtowc zale¿y od kategorii LC_CTYPE bie¿±cego locale.

Funkcja ta nie jest przystosowana do wielow±tkowo¶ci. Funkcja mbrtowc zapewnia lepszy interfejs przy tym samym dzia³aniu.