NOM¶
BUF_MEM_new, BUF_MEM_free, BUF_MEM_grow, BUF_strdup - Structure de tableaux de
caractères simples
SYNOPSIS¶
#include <openssl/buffer.h>
BUF_MEM *BUF_MEM_new(void);
void BUF_MEM_free(BUF_MEM *a);
int BUF_MEM_grow(BUF_MEM *str, int len);
char * BUF_strdup(const char *str);
DESCRIPTION¶
La bibliothèque de tampon utilise des tableaux de caractères
simples. Les tampons sont utilisés à des fins diverses dans la
bibliothèque, notamment pour les BIO mémoires.
La bibliothèque utilise la structure BUF_MEM définie dans buffer.h
typedef struct buf_mem_st
{
int length; /* nombre actuel d'octets */
char *data;
int max; /* taille du tampon */
} BUF_MEM;
length est la taille actuelle du tampon en octets,
max est la
quantité de mémoire allouée au tampon. Il y a trois
fonctions qui gèrent celles-ci, ainsi qu'une fonction
« divers ».
BUF_MEM_new() alloue un nouveau tampon de taille 0.
BUF_MEM_free() libère un tampon préexistant. Les
données sont mises à 0 avant d'être
libérées au cas où le tampon contiendrait des
données sensibles.
BUF_MEM_grow() change la taille d'un tampon déjà existant
à la taille
len. Les données présentes dans le
tampon sont préservées si celui-ci est agrandi.
BUF_strdup() copie une chaîne terminée par null dans un
bloc de mémoire alloué et renvoie un pointeur vers ce bloc.
À la différence de la fonction
strdup() de la
bibliothèque standard de C, cette fonction utilise
OPENSSL_malloc() et donc devrait être
préférée à
strdup() car elle peut
être utilisée pour détecter des fuites de mémoire
ou pour remplacer la fonction
malloc().
La mémoire allouée par
BUF_strdup() doit être
libérée en utilisant la fonction
OPENSSL_free().
VALEURS DE RETOUR¶
BUF_MEM_new() renvoie le tampon ou NULL en cas d'erreur.
BUF_MEM_free() n'a pas de valeur de retour.
BUF_MEM_grow() renvoie la nouvelle taille (c'est-à-dire
len), ou 0 en cas d'erreur.
VOIR AUSSI¶
bio(3)
HISTORIQUE¶
BUF_MEM_new(),
BUF_MEM_free() et
BUF_MEM_grow() sont
disponibles dans toutes les versions de SSLeay et d'OpenSSL.
BUF_strdup() a été ajouté dans SSLeay 0.8.
TRADUCTION¶
La traduction de cette page de manuel est maintenue par les membres de la liste
<debian-l10n-french AT lists DOT debian DOT org>. Veuillez signaler
toute erreur de traduction par un rapport de bogue sur le paquet
manpages-fr-extra.