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.