BUF_strdup(3) Structure de tableaux

Other Alias

BUF_MEM_new, BUF_MEM_free, BUF_MEM_grow

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.

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.