MBSNRTOWCS(3) | Manual do Programador do Linux | MBSNRTOWCS(3) |
NOME¶
mbsnrtowcs - converte uma cadeia de caracteres multibyte para uma cadeia de caracteres largos
SINOPSE¶
#include <wchar.h>
size_t mbsnrtowcs(wchar_t *dest, const char **src, size_t nms, size_t len, mbstate_t *ps);
mbsnrtowcs():
- Desde o glibc 2.10:
- _POSIX_C_SOURCE >= 200809L
- Antes do glibc 2.10:
- _GNU_SOURCE
DESCRIÇÃO¶
The mbsnrtowcs() function is like the mbsrtowcs(3) function, except that the number of bytes to be converted, starting at *src, is limited to at most nms bytes.
If dest is not NULL, the mbsnrtowcs() function converts at most nms bytes from the multibyte string *src to a wide-character string starting at dest. At most len wide characters are written to dest. The shift state *ps is updated. The conversion is effectively performed by repeatedly calling mbrtowc(dest, *src, n, ps) where n is some positive number, as long as this call succeeds, and then incrementing dest by one and *src by the number of bytes consumed. The conversion can stop for three reasons:
- 1.
- An invalid multibyte sequence has been encountered. In this case, *src is left pointing to the invalid multibyte sequence, (size_t) -1 is returned, and errno is set to EILSEQ.
- 2.
- The nms limit forces a stop, or len non-L'\0' wide characters have been stored at dest. In this case, *src is left pointing to the next multibyte sequence to be converted, and the number of wide characters written to dest is returned.
- 3.
- The multibyte string has been completely converted, including the terminating null wide character ('\0') (which has the side effect of bringing back *ps to the initial state). In this case, *src is set to NULL, and the number of wide characters written to dest, excluding the terminating null wide character, is returned.
According to POSIX.1, if the input buffer ends with an incomplete character, it is unspecified whether conversion stops at the end of the previous character (if any), or at the end of the input buffer. The glibc implementation adopts the former behavior.
Se dest é NULO, len é ignorado, e a conversão prossegue como acima, exceto que os caracteres largos convertidos não são escritos para a memória e que não existe tamanho limite no destino.
In both of the above cases, if ps is NULL, a static anonymous state known only to the mbsnrtowcs() function is used instead.
O programador precisa assegurar-se de que há espaço para pelo menos len caracteres largos em dest.
VALOR DE RETORNO¶
A função mbsnrtowcs() devolve o número de caracteres largos que constituem a parte convertida da cadeia de caracteres largos, não incluindo o caractere largo terminador nulo. Se uma seqüência multibyte for encontrada, (size_t) -1 é retornado, e errno ajustado para EILSEQ.
ATRIBUTOS¶
Para uma explicação dos termos usados nesta seção, consulte attributes(7).
Interface | Atributo | Valor |
mbsnrtowcs() | Thread safety | MT-Unsafe race:mbsnrtowcs/!ps |
DE ACORDO COM¶
POSIX.1-2008.
NOTAS¶
The behavior of mbsnrtowcs() depends on the LC_CTYPE category of the current locale.
Passando NULO como ps não é seguro em multi-thread.
VEJA TAMBÉM¶
COLOFÃO¶
Esta página faz parte da versão 5.10 do projeto Linux man-pages. Uma descrição do projeto, informações sobre relatórios de bugs e a versão mais recente desta página podem ser encontradas em https://www.kernel.org/doc/man-pages/.
TRADUÇÃO¶
A tradução para português brasileiro desta página man foi criada por Felipe M Pereira <Felipe.Pereira@ic.unicamp.br> e André Luiz Fassone <lonely_wolf@ig.com.br>
Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita.
Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de discussão de tradutores.
9 junho 2020 | GNU |