fr::crypto::BIO_read(3SSL)

NOM
BIO_read, BIO_write, BIO_gets, BIO_puts - Fonctions d'entrées et sorties de BIO

SYNOPSIS
 #include <openssl/bio.h>

 int    BIO_read(BIO *b, void *buf, int len);
 int    BIO_gets(BIO *b,char *buf, int size);
 int    BIO_write(BIO *b, const void *buf, int len);
 int    BIO_puts(BIO *b,const char *buf);

DESCRIPTION
BIO_read() essaye de lire len octets du BIO b et place les données dans buf.

BIO_gets() réalise l'opération « gets » des BIO et place les données dans buf. Normalement, cette opération essayera de lire une ligne de données de taille maximale len du BIO. Il y a cependant des exceptions à cela, par exemple BIO_gets() sur un BIO de signature calculera et renverra la signature mais d'autres BIO pourraient ne pas prendre BIO_gets() en charge du tout.

BIO_write() essaye d'écrire len octets de buf sur le BIO b.

BIO_puts() essaye d'écrire une chaîne buf terminée par null sur le BIO b.

VALEURS DE RETOUR
Toutes ces fonctions renvoient soit la quantité de données lues ou écrites correctement (si la valeur de retour est positive), soit 0 ou -1 si aucune donnée n'a été lue ou écrite, soit -2 si l'opération n'est pas implémentée dans ce type de BIO en particulier.

NOTES
Une valeur de retour de 0 ou -1 n'est pas forcément une indication d'erreur. En particulier quand la source ou la destination sont non bloquantes ou d'un certain type, cela pourrait juste être une indication qu'aucune donnée n'est actuellement disponible et que l'application devrait réessayer l'opération plus tard.

Une technique parfois utilisée avec les sockets bloquantes est d'utiliser un appel système (comme select(), poll() ou équivalent) pour déterminer quand les données sont disponibles et ensuite d'appeler read() pour lire les données. L'équivalent avec les BIO (c'est-à-dire appeler select() sur la structure d'entrées et sorties sous-jacente et ensuite d'appeler BIO_read() pour lire les données) ne devrait pas être utilisé parce qu'un simple appel de BIO_read() peut provoquer plusieurs lectures (et écritures dans le cas des BIO SSL) sur la structure d'entrées et sorties sous-jacente et pourrait par conséquent bloquer. À la place, select() (ou équivalent) devrait être combiné avec des entrées et sorties non bloquantes pour que les lectures successives demandent à réessayer au lieu de bloquer.

Consultez BIO_should_retry(3) pour des précisions sur la façon de déterminer la cause d'un réessai ou tout autre problème d'entrées et sorties.

Si la fonction BIO_gets() n'est pas prise en charge par un BIO, alors contourner cela est possible en ajoutant un BIO tampon BIO_f_buffer(3) à la chaîne.

VOIR AUSSI
BIO_should_retry(3)

À préciser

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.