Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La funzione ber_scanf decodifica un elemento BER in modo analogo a sscanf_s. Una differenza importante è che alcuni dati sullo stato vengono mantenuti con l'argomento BerElement in modo che sia possibile effettuare più chiamate per ber_scanf per leggere in sequenza dall'elemento BER. L'argomento BerElement deve essere un puntatore a un BerElement restituito da ber_init.
Sintassi
WINBERAPI ULONG BERAPI ber_scanf(
[in, out] BerElement *pBerElement,
[in] PSTR fmt,
...
);
Parametri
[in, out] pBerElement
Puntatore alla struttura BerElement decodificata.
[in] fmt
Stringa di formato di codifica. Per altre informazioni, vedere la sezione Osservazioni.
...
Puntatori alle variabili usate per contenere i valori decodificati come specificato dall'argomento fmt .
Valore restituito
In caso di errore, la funzione restituisce LBER_ERROR.
Commenti
La funzione interpreta i byte in base alla stringa di formato fmt e archivia i risultati nei relativi argomenti aggiuntivi. La stringa di formato contiene le specifiche di conversione utilizzate per indirizzare l'interpretazione dell'elemento BER. La stringa di formato può contenere caratteri elencati nella tabella seguente.
| Carattere | Descrizione |
|---|---|
| Un | Stringa ottetto. È necessario specificare un argomento char** . La memoria viene allocata, riempita con il contenuto della stringa ottetto, con terminazione zero e il puntatore alla stringa viene archiviato nell'argomento . Il valore restituito deve essere liberato usando ldap_memfree. Il tag dell'elemento deve indicare il formato primitivo (le stringhe costruite non sono supportate), ma viene altrimenti ignorato e ignorato durante la decodifica. Questo formato non può essere usato con stringhe ottetto che possono contenere byte Null. |
| O | Stringa ottetto. È necessario specificare un argomento berval** , che al momento del ritorno punta a una berval allocata contenente la stringa ottetto e la relativa lunghezza. ber_bvfree deve essere chiamato per liberare la memoria allocata. Il tag dell'elemento deve indicare il formato primitivo (le stringhe costruite non sono supportate), ma viene altrimenti ignorato durante la decodifica. |
| b | Boolean. È necessario specificare un puntatore a un ber_int_t . Il valore ber_int_t archiviato sarà 0 per FALSE o diverso da zero per TRUE. Il tag dell'elemento deve indicare il formato primitivo, ma viene altrimenti ignorato durante la decodifica. |
| e | Enumerato. È necessario specificare un puntatore a un ber_int_t . Il tag dell'elemento deve indicare il form primitivo, ma viene altrimenti ignorato durante la decodifica. ber_scanf restituirà un errore se il valore del valore enumerato non può essere archiviato in un ber_int_t. |
| i | Integer. È necessario specificare un puntatore a un ber_int_t . Il tag dell'elemento deve indicare il modulo primitivo, ma viene altrimenti ignorato durante la decodifica. ber_scanf restituirà un errore se l'intero non può essere archiviato in un ber_int_t. |
| B | Bitstring. È necessario specificare un argomento char** che punterà ai bit allocati, seguiti da un argomento ber_len_t * che punterà alla lunghezza (in bit) della stringa di bit restituita. ldap_memfree deve essere chiamato per liberare la stringa bit. Il tag dell'elemento deve indicare il formato primitivo (le stringhe bit costruite non sono supportate), ma viene altrimenti ignorato durante la decodifica. |
| n | Null. Non è necessario alcun argomento. L'elemento viene verificato di avere un valore di lunghezza zero e viene ignorato. Il tag viene ignorato. |
| t | Tag. È necessario specificare un puntatore a un ber_tag_t . Il valore ber_tag_t archiviato sarà il tag dell'elemento successivo in pBerElement, rappresentato in modo che possa essere scritto usando il formato t di ber_printf. La posizione di decodifica all'interno dell'argomento pBerElement rimane invariata. |
| Presso | Diverse stringhe ottetto. È necessario specificare un argomento char++ che al momento del ritorno punta a una matrice con terminazione Null allocata di char *che contiene le stringhe ottetto. NULL viene archiviato se la sequenza è vuota. ldap_memfree deve essere chiamato per liberare ogni elemento della matrice e la matrice stessa. Il tag della sequenza e delle stringhe ottetto vengono ignorati. |
| V | Diverse stringhe ottetto (che possono contenere byte Null). È necessario specificare un berval(*) che al momento del ritorno punta a una matrice con terminazione NULL allocata di berval*contenente le stringhe ottetto e le relative lunghezze. NULL viene archiviato se la sequenza è vuota. ber_bvecfree può essere chiamato per liberare la memoria allocata. Il tag della sequenza e delle stringhe ottetto vengono ignorati. |
| x | Ignorare l'elemento . L'elemento successivo viene ignorato. Non è necessario alcun argomento. |
| { | Sequenza di inizio. Non è necessario alcun argomento. Il tag e la lunghezza della sequenza iniziale vengono ignorati. |
| } | Sequenza finale. Non è necessario alcun argomento. |
| [ | Set di inizio. Non è necessario alcun argomento. Il tag e la lunghezza del set iniziale vengono ignorati. |
| ] | Set di fine. Non è necessario alcun argomento. |
Requisiti
| Requisito | Valore |
|---|---|
| Client minimo supportato | Windows Vista |
| Server minimo supportato | Windows Server 2008 |
| Piattaforma di destinazione | Windows |
| Intestazione | winber.h |
| Libreria | Wldap32.lib |
| DLL | Wldap32.dll |