MBSINIT(3)

NOME
mbsinit - testa o estado inicial de transição

SINÓPSE
#include <wchar.h>

int mbsinit (const mbstate_t *ps);

DESCRIÇÃO
A conversão de caractere entre a representação multibyte e a representação de caractere largo usa estado de conversão, do tipo mbstate_t. A conversão de uma seqüencia usa um autômato finito (máquina de estados); quando ela é interrompida depois da conversão completa de um número de caracteres, ela pode precisar salvar um estado para processar os caracteres restantes. Tal estado de conversão é necessário por causa de codificações tais como ISO-2022 e UTF-7.

O estado inicial é o estado no início da conversão de uma seqüencia. Existem dois tipos de estado: O que é utilizado por funções de conversão multibyte para caractere largo, tais como mbsrtowcs, e o utilizado por funções de conversão de caractere largo para multibyte, tais como wcsrtombs, mas ambos se encaixam em um mbstate_t, e ambos têm a mesma representação para um estado inicial.

Para codificações de 8-bit, todos estados são equivalentes ao estado inicial. Para codificações como UTF-8, EUC-*, BIG5 ou SJIS, as funções de conversão de caractere largo para multibyte nunca produzem estados não-iniciais, mas as funções de conversão de multibyte para caractere largo, como mbrtowc, produzem estados não-iniciais quando interrompidas no meio de um caractere.

Uma possível maneira de criar um mbstate_t em estado inicial é ajustá-lo para zero:
  mbstate_t state;
  memset(&state,0,sizeof(mbstate_t));
No Linux, o seguinte trecho funciona também, mas pode gerar avisos do compilador:
  mbstate_t state = { 0 };

A função mbsinit testa se *ps corresponde a um estado inicial.

VALORES RETORNADOS
mbsinit retorna não-zero se *ps é um estado inicial, ou se ps é um ponteiro nulo. Caso contrário, retorna 0.

DE ACORDO COM
ISO/ANSI C, UNIX98.

VEJA TAMBÉM
mbsrtowcs(3), wcsrtombs(3).

NOTAS
O comportamento de mbsinit depende da categoria LC_CTYPE da localização atual.

TRADUZIDO POR LDP-BR em 28/05/2001.

  Tradução:
Felipe M Pereira <Felipe.Pereira@ic.unicamp.br>

  Revisão.:
André Luiz Fassone <lonely_wolf@ig.com.br>