função ber_scanf (winber.h)
A função ber_scanf decodifica um elemento BER de maneira semelhante à sscanf_s. Uma diferença importante é que alguns dados de status de estado são mantidos com o argumento BerElement para que várias chamadas possam ser feitas para ber_scanf ler sequencialmente do elemento BER. O argumento BerElement deve ser um ponteiro para um BerElement retornado por ber_init.
Sintaxe
WINBERAPI ULONG BERAPI ber_scanf(
[in, out] BerElement *pBerElement,
[in] PSTR fmt,
...
);
Parâmetros
[in, out] pBerElement
Ponteiro para a estrutura BerElement decodificada.
[in] fmt
Cadeia de caracteres de formato de codificação. Para obter mais informações, consulte a seção Comentários.
...
Ponteiros para variáveis usadas para manter os valores decodificados conforme especificado pelo argumento fmt .
Retornar valor
Em caso de erro, a função retorna LBER_ERROR.
Comentários
A função interpreta os bytes de acordo com a cadeia de caracteres de formato fmt e armazena os resultados em seus argumentos adicionais. A cadeia de caracteres de formato contém especificações de conversão usadas para direcionar a interpretação do elemento BER. A cadeia de caracteres de formato pode conter caracteres listados na tabela a seguir.
Caractere | Descrição |
---|---|
a | Cadeia de caracteres de octeto. Um argumento char** deve ser fornecido. A memória é alocada, preenchida com o conteúdo da cadeia de caracteres de octeto, terminada em zero e o ponteiro para a cadeia de caracteres é armazenado no argumento . O valor retornado deve ser liberado usando ldap_memfree. A marca do elemento deve indicar a forma primitiva (cadeias de caracteres construídas não têm suporte), mas é ignorada e descartada durante a decodificação. Esse formato não pode ser usado com cadeias de caracteres de octeto que podem conter bytes nulos. |
O | Cadeia de caracteres de octeto. Um argumento berval** deve ser fornecido, que ao retornar aponta para um berval alocado que contém a cadeia de caracteres de octeto e seu comprimento. ber_bvfree deve ser chamado para liberar a memória alocada. A marca do elemento deve indicar a forma primitiva (cadeias de caracteres construídas não têm suporte), mas, de outra forma, é ignorada durante a decodificação. |
b | Boolean. Um ponteiro para um ber_int_t deve ser fornecido. O valor de ber_int_t armazenado será 0 para FALSE ou diferente de zero para TRUE. A marca do elemento deve indicar a forma primitiva, mas é ignorada durante a decodificação. |
e | Enumerado. Um ponteiro para um ber_int_t deve ser fornecido. A marca do elemento deve indicar a forma primitiva, mas é ignorada durante a decodificação. ber_scanf retornará um erro se o valor do valor enumerado não puder ser armazenado em um ber_int_t. |
i | Integer. Um ponteiro para um ber_int_t deve ser fornecido. A marca do elemento deve indicar a forma primitiva, mas é ignorada durante a decodificação. ber_scanf retornará um erro se o inteiro não puder ser armazenado em um ber_int_t. |
B | Bitstring. Um argumento char** deve ser fornecido que apontará para os bits alocados, seguido por um argumento ber_len_t * que apontará para o comprimento (em bits) da bitstring retornada. ldap_memfree deve ser chamado para liberar a bitstring. A marca do elemento deve indicar a forma primitiva (não há suporte para bitstrings construídos), mas, de outra forma, é ignorada durante a decodificação. |
n | Nulo. Nenhum argumento é necessário. O elemento é verificado para ter um valor de comprimento zero e é ignorado. A marca é ignorada. |
t | Marca. Um ponteiro para um ber_tag_t deve ser fornecido. O valor ber_tag_t armazenado será a marca do próximo elemento no pBerElement, representado para que possa ser gravado usando o formato t de ber_printf. A posição de decodificação dentro do argumento pBerElement é inalterada por isso. |
v | Várias cadeias de caracteres de octeto. Um argumento char*** deve ser fornecido, que ao retornar aponta para uma matriz alocada terminada em nulo de char *'s que contém as cadeias de caracteres de octeto. NULL será armazenado se a sequência estiver vazia. ldap_memfree deve ser chamado para liberar cada elemento da matriz e da própria matriz. A marca da sequência e das cadeias de caracteres de octeto são ignoradas. |
V | Várias cadeias de caracteres de octeto (que podem conter bytes nulos). Um berval*** deve ser fornecido, o que, após o retorno, aponta para uma matriz alocada terminada em NULL de berval*'s que contém as cadeias de caracteres de octeto e seus comprimentos. NULL será armazenado se a sequência estiver vazia. ber_bvecfree pode ser chamado para liberar a memória alocada. A marca da sequência e das cadeias de caracteres de octeto são ignoradas. |
x | Elemento Skip. O próximo elemento é ignorado. Nenhum argumento é necessário. |
{ | Iniciar sequência. Nenhum argumento é necessário. A marca de sequência inicial e o comprimento são ignorados. |
} | Sequência final. Nenhum argumento é necessário. |
[ | Iniciar conjunto. Nenhum argumento é necessário. A marca e o comprimento do conjunto inicial são ignorados. |
] | Conjunto de términos. Nenhum argumento é necessário. |
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | winber.h |
Biblioteca | Wldap32.lib |
DLL | Wldap32.dll |