#include <wchar.h> size_t mbsrtowcs(wchar_t *dest, const char **src, size_t len, mbstate_t *ps);
1. Была встречена неправильная многобайтовая последовательность. В этом случае *src оставляют для указания на неправильную многобайтовую последовательность, при этом возвращается (size_t)(-1), а значение errno меняется на EILSEQ.
2. В dest было сохранено len ненулевых широких символов. В этом случае *src оставляют для указания на следующую многобайтовую последовательность для преобразований, при этом возвращается количество широких символов, записанных в dest.
3. Многобайтовая строка была полностью преобразована, включая заключительный '\0' (который, помимо этого, возвращает *ps в исходное состояние). В этом случае *src устанавливается равным NULL и возвращается количество широких символов, записанных в dest, кроме заключительного символа L'\0'.
Если dest равно NULL, то len игнорируется и преобразование продолжается по схеме, описанной выше, за исключением того, что преобразованные широкие символы не записываются в память и что при записи не существует ограничений длины строки символов.
В обоих вышеперечисленных случаях, если ps является NULL-указателем, вместо него используется статическое анонимное состояние, известное только функции mbsnrtowcs.
Программист должен убедиться, что в dest существует достаточно места для размещения, по меньшей мере, len широких символов.
Использование NULL как ps для нескольких подпроцессов небезопасно.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |