Compartir a través de


ber_printf función (winber.h)

La función ber_printf se usa para codificar un elemento BER y es similar a sprintf_s. Una diferencia importante es que los datos de estado se almacenan en el argumento BerElement para que se puedan realizar varias llamadas a ber_printf para anexar al final del elemento BER. El argumento BerElement pasado a esta función debe ser un puntero a un BerElement devuelto por ber_alloc_t.

Sintaxis

WINBERAPI INT BERAPI ber_printf(
  [in, out] BerElement *pBerElement,
  [in]      PSTR       fmt,
            ...        
);

Parámetros

[in, out] pBerElement

Puntero a la estructura BerElement codificada.

[in] fmt

Cadena de formato de codificación. Para obtener más información, vea la sección Comentarios.

...

Valores que se van a codificar según lo especificado por el argumento fmt .

Valor devuelto

Si la función se ejecuta correctamente, se devuelve un número no negativo. Si se produce un error en la función, se devuelve -1.

Comentarios

La cadena de formato puede contener caracteres de formato enumerados en la tabla siguiente.

Carácter Descripción
t Etiqueta. El argumento siguiente es un ber_tag_t que especifica la etiqueta para invalidar el siguiente elemento escrito en BerElement. Esto funciona en todas las llamadas.
b Booleano. El argumento siguiente es un ber_int_t, que contiene 0 para FALSE o 1 para TRUE. Se genera un elemento booleano. Si este carácter de formato no va precedido por el modificador de formato t , la etiqueta 0x01U se usa para el elemento .
e Enumerado. El argumento siguiente es un ber_int_t, que contiene el valor enumerado. Se genera un elemento enumerado. Si este carácter de formato no está precedido por el modificador de formato t , la etiqueta 0x0AU se usa para el elemento .
i Entero. El argumento siguiente es un ber_int_t, que contiene el valor entero. Se genera un elemento entero. Si este carácter de formato no va precedido por el modificador de formato t , la etiqueta 0x02U se usa para el elemento .
n Null. No se requiere ningún argumento. Se genera un elemento NULL ASN.1. Si este carácter de formato no va precedido por el modificador de formato t , la etiqueta 0x05U se usa para el elemento .
o Cadena de octeto. Los dos argumentos siguientes son char *, seguidos de un ber_len_t con la longitud de la cadena. La cadena puede contener bytes NULL y no tiene que terminar en cero. Se genera un elemento de cadena de octetos y no se realiza ninguna conversión de formato de caracteres en los datos de cadena. Pasar un puntero NULL seguido de una longitud de 0 es aceptable si se requiere un elemento de cadena de octeto NULL . Si este carácter de formato no va precedido por el modificador de formato t , se usa la etiqueta 0x04U para el elemento .
s Cadena de octeto. El argumento siguiente es un carácter* que apunta a una cadena de caracteres ANSI terminada en cero. Los caracteres de cadena ANSI se convierten en formato UTF-8 y se genera un elemento de cadena de octeto, que no incluye el byte final '\0' (null). Pasar un puntero NULL es aceptable si se requiere un elemento de cadena de octeto NULL . Si este carácter de formato no va precedido por el modificador de formato t , se usa la etiqueta 0x04U para el elemento .
v Varias cadenas de octetos. El siguiente argumento es char **, una matriz de punteros char* a cadenas ANSI terminadas en cero. El último elemento de la matriz debe ser un puntero NULL . Las cadenas de octetos no incluyen el byte final '\0' (null). Tenga en cuenta que se usa una construcción como {v} para obtener una secuencia real de cadenas de octetos. El modificador de formato t no se puede usar con este carácter de formato.
V Varias cadenas de octetos. Se proporciona una matriz terminada en NULL de berval* . Tenga en cuenta que se usa una construcción como {v} para obtener una secuencia real de cadenas de octetos. El modificador de formato t no se puede usar con este carácter de formato.
X Bitstring. Los dos argumentos siguientes son un puntero char* al inicio de la cadena de bits, seguido de un ber_len_t que contiene el número de bits de la cadena de bits. Se genera un elemento bitstring. Si este carácter de formato no va precedido por el modificador de formato t , la etiqueta 0x03U se usa para el elemento .
{ Secuencia inicial. No se requiere ningún argumento. Si este carácter de formato no va precedido por el modificador de formato t , se usa la etiqueta 0x30U.
} Secuencia final. No se requiere ningún argumento. El modificador de formato t no se puede usar con este carácter de formato.
[ Comenzar conjunto. No se requiere ningún argumento. Si este carácter de formato no va precedido por el modificador de formato t , se usa la etiqueta 0x31U.
] Conjunto final. No se requiere ningún argumento. El modificador de formato t no se puede usar con este carácter de formato.
 

Cada carácter de llave izquierda ({) debe emparejarse con un carácter de llave derecha (}) más adelante en la cadena de formato o en la cadena de formato de una llamada posterior a ber_printf para ese BerElement específico. Lo mismo se aplica a los caracteres de corchete izquierdo ([) y corchete derecho (]).

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado winber.h
Library Wldap32.lib
Archivo DLL Wldap32.dll

Consulte también

BerElement

Funciones

ber_scanf

berval