WCRTOMB(3) Manual do Programador Linux WCRTOMB(3)
wcrtomb - converte um caractere largo para uma sequencia multibyte
#include <wchar.h>
size_t wcrtomb (char *s, wchar_t wc, mbstate_t *ps);
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 carac‐
teres 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 sequen‐
cia 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.
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
wcsrtombs(3)
O comportamento de wcrtomb depende da categoria LC_CTYPE do locale cor‐
rente.
A passagem de NULL como ps não é segura para multi-thread.
Marcelo D. Beckmann <marcelobeckmann [AT] yahoo.com> (tradução) Espaço para
o Revisor <nome [AT] dominio.br> (revisão)
GNU 25 Julho 1999 WCRTOMB(3)