Freigeben über


ber_printf-Funktion (winber.h)

Die ber_printf-Funktion wird zum Codieren eines BER-Elements verwendet und ähnelt sprintf_s. Ein wichtiger Unterschied besteht darin, dass Zustandsdaten im BerElement-Argument gespeichert werden, sodass mehrere Aufrufe an ber_printf ausgeführt werden können, die an das Ende des BER-Elements angefügt werden können. Das An diese Funktion übergebene BerElement-Argument muss ein Zeiger auf ein BerElement sein, das von ber_alloc_t zurückgegeben wird.

Syntax

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

Parameter

[in, out] pBerElement

Ein Zeiger auf die codierte BerElement-Struktur .

[in] fmt

Eine Codierungsformatzeichenfolge. Weitere Informationen finden Sie in den Hinweisen.

...

Die durch das fmt-Argument angegebenen Werte, die codiert werden sollen.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird eine nicht negative Zahl zurückgegeben. Wenn die Funktion fehlschlägt, wird -1 zurückgegeben.

Hinweise

Die Formatzeichenfolge kann Formatzeichen enthalten, die in der folgenden Tabelle aufgeführt sind.

Zeichen BESCHREIBUNG
t Tag. Das nächste Argument ist ein ber_tag_t , das das -Tag angibt, um das nächste in das BerElement geschriebene Element zu überschreiben. Dies funktioniert über Aufrufe hinweg.
b Boolean. Das nächste Argument ist ein ber_int_t, das entweder 0 für FALSE oder 1 für TRUE enthält. Ein boolesches Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x01U für das -Element verwendet.
e Aufgezählt. Das nächste Argument ist ein ber_int_t, das den aufgezählten Wert enthält. Ein aufgezähltes Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x0AU für das -Element verwendet.
i Integer. Das nächste Argument ist ein ber_int_t, das den ganzzahligen Wert enthält. Ein ganzzahliges Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x02U für das -Element verwendet.
n Null. Es ist kein Argument erforderlich. Ein ASN.1 NULL-Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x05U für das -Element verwendet.
o Oktettzeichenfolge. Die nächsten beiden Argumente sind ein char*, gefolgt von einem ber_len_t mit der Länge der Zeichenfolge. Die Zeichenfolge kann NULL-Bytes enthalten und muss nicht mit Null beendet sein. Ein Oktettzeichenfolgenelement wird ausgegeben, und es werden keine Zeichenformatkonvertierungen für die Zeichenfolgendaten ausgeführt. Das Übergeben eines NULL-Zeigers gefolgt von einer Länge von 0 ist akzeptabel, wenn ein NULL-Oktettzeichenfolgenelement erforderlich ist. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x04U für das -Element verwendet.
s Oktettzeichenfolge. Das nächste Argument ist ein char* , das auf eine anSI-Zeichenfolge mit Null endet. Die ANSI-Zeichenfolgenzeichen werden in das UTF-8-Format konvertiert, und ein Oktettzeichenfolgenelement wird ausgegeben, das das nachfolgende Byte "\0" (NULL) nicht enthält. Das Übergeben eines NULL-Zeigers ist akzeptabel, wenn ein NULL-Oktettzeichenfolgenelement erforderlich ist. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x04U für das -Element verwendet.
V Mehrere Oktettzeichenfolgen. Das nächste Argument ist ein char**, ein Array von char* -Zeigern auf NULL-beendete ANSI-Zeichenfolgen. Das letzte Element im Array muss ein NULL-Zeiger sein. Die Oktettzeichenfolgen enthalten nicht das nachfolgende Byte "\0" (NULL). Beachten Sie, dass ein Konstrukt wie {v} verwendet wird, um eine tatsächliche SEQUENZ VON Oktettzeichenfolgen abzurufen. Der T-Formatmodifizierer kann nicht mit diesem Formatzeichen verwendet werden.
B Mehrere Oktettzeichenfolgen. Ein NULL-beendetes Array von berval* wird bereitgestellt. Beachten Sie, dass ein Konstrukt wie {v} verwendet wird, um eine tatsächliche SEQUENZ VON Oktettzeichenfolgen abzurufen. Der T-Formatmodifizierer kann nicht mit diesem Formatzeichen verwendet werden.
X Bitzeichenfolge. Die nächsten beiden Argumente sind ein char* -Zeiger auf den Anfang der Bitzeichenfolge, gefolgt von einem ber_len_t , der die Anzahl der Bits in der Bitzeichenfolge enthält. Ein Bitstring-Element wird ausgegeben. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x03U für das -Element verwendet.
{ Startsequenz. Es ist kein Argument erforderlich. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x30U verwendet.
} Endsequenz. Es ist kein Argument erforderlich. Der T-Formatmodifizierer kann nicht mit diesem Formatzeichen verwendet werden.
[ Startsatz. Es ist kein Argument erforderlich. Wenn diesem Formatzeichen nicht der Formatmodifizierer t vorangestellt ist, wird das Tag 0x31U verwendet.
] Endsatz. Es ist kein Argument erforderlich. Der T-Formatmodifizierer kann nicht mit diesem Formatzeichen verwendet werden.
 

Jedes linke Klammerzeichen ({) muss mit einer rechten Klammer (}) später in der Formatzeichenfolge oder in der Formatzeichenfolge eines nachfolgenden Aufrufs von ber_printf für dieses spezifische BerElement gekoppelt werden. Gleiches gilt für die Zeichen der linken Klammer ([) und der rechten Klammer (]).

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile winber.h
Bibliothek Wldap32.lib
DLL Wldap32.dll

Weitere Informationen

BerElement

Funktionen

ber_scanf

berval