NOME¶
wcrtomb - converte um caractere largo para uma sequencia multibyte
SINOPSE¶
#include <wchar.h>
size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps);
DESCRIÇÃO¶
O principal caso para esta função é quando
s
é não NULL e
wc não é L'\0'. Nesse caso, a
função
wcrtomb converte o caractere largo
wc para
sua representação multibyte e armazena-o no início do
vetor de caracteres apontado por
s. Atualiza o indicador de
deslocamento
*ps, e retorna o tamanho da representação em
multibyte, isto é, o número de bytes escritos em
s.
Um caso diferente é quando
s é não NULL mas
wc é L'\0'. Nesse caso a função
wcrtomb
armazena no vetor de caracteres apontado por
s a sequencia de
deslocamento necessária para trazer
*ps de volta ao seu estado
inicial, seguida por um byte '\0'. Atualiza o indicador de de estado
*ps (i.e. leva-o ao estado inicial), e retorna o tamanho da sequencia
de deslocamento mais um, i.e. o número de bytes escritos em
s.
O terceiro caso é quando
s é NULL. Nesse caso
wc
é ignorado, e a função efetivamente retorna
wcrtomb(buf,L'\0',
ps) onde buf é um buffer interno
anônimo.
Em todos os casos acima, se
ps é um ponteiro NULL, o estado
anônimo estático somente da a conhecer para a
função wcrtomb é usada em seu lugar.
VALOR DE RETORNO¶
A função
wcrtomb retorna o número de bytes que foram
ou deveriam ter sido escritos para o vetor de byte
s. Se
wc
não puder ser representado como uma sequencia multibyte (de acordo com
o locale corrente), (size_t)(-1) é retornado, e
errno é
atualizado para
EILSEQ.
ISO/ANSI C, UNIX98
VEJA TAMBÉM¶
wcsrtombs(3)
NOTAS¶
O comportamento de
wcrtomb depende da categoria LC_CTYPE do locale
corrente.
A passagem de NULL como
ps não é segura para multi-thread.
TRADUZIDO POR LDP-BR em 25/08/2000¶
Marcelo D. Beckmann <marcelobeckmann@yahoo.com> (tradução)
Espaço para o Revisor <nome@dominio.com.br>
(revisão)