BIO_NEW(3ssl) OpenSSL BIO_NEW(3ssl)

BIO_new_ex, BIO_new, BIO_up_ref, BIO_free, BIO_vfree, BIO_free_all - funcții de alocare și eliberare BIO

#include <openssl/bio.h>
BIO *BIO_new_ex(OSSL_LIB_CTX *libctx, const BIO_METHOD *type);
BIO *BIO_new(const BIO_METHOD *type);
int BIO_up_ref(BIO *a);
int BIO_free(BIO *a);
void BIO_vfree(BIO *a);
void BIO_free_all(BIO *a);

Funcția BIO_new_ex() returnează un nou BIO utilizând metoda type asociată cu contextul bibliotecii libctx (a se vedea OSSL_LIB_CTX(3)). Contextul bibliotecii poate fi NULL pentru a indica contextul bibliotecii implicite. type NU TREBUIE să fie NULL.

BIO_new() este identică cu BIO_new_ex(), cu excepția faptului că se utilizează întotdeauna contextul bibliotecii implicite.

BIO_up_ref() crește numărul de referințe asociate obiectului BIO.

BIO_free() eliberează un singur BIO, BIO_vfree() eliberează, de asemenea, un singur BIO, dar nu returnează o valoare. Dacă a este NULL, nu se face nimic Apelarea BIO_free() poate avea, de asemenea, un anumit efect asupra structurii I/O subiacente, de exemplu, poate închide fișierul la care se face referire în anumite circumstanțe. Pentru mai multe detalii, consultați descrierile individuale ale BIO_METHOD.

BIO_free_all() eliberează întregul lanț BIO, nu se oprește dacă apare o eroare la eliberarea unui BIO individual din lanț. Dacă a este NULL, nu se face nimic.

BIO_new_ex() și BIO_new() returnează un BIO nou creat sau NULL dacă apelul eșuează.

BIO_up_ref() și BIO_free() returnează 1 în caz de succes și 0 în caz de eșec.

BIO_free_all() și BIO_vfree() nu returnează valori.

Dacă BIO_free() este apelată pe un lanț BIO, aceasta va elibera doar un singur BIO, ceea ce va duce la o pierdere de memorie.

Apelarea BIO_free_all() pe un singur BIO are același efect ca apelarea BIO_free() pe acesta, cu excepția valorii returnate eliminate.

BIO_set() a fost eliminată în OpenSSL 1.1.0, deoarece tipul BIO este acum opac.

BIO_new_ex() a fost adăugată în OpenSSL 3.0.

Creează o memorie BIO:

BIO *mem = BIO_new(BIO_s_mem());

Drepturi de autor 2000-2021 The OpenSSL Project Authors. Toate drepturile rezervate.

Licențiat sub Licența Apache 2.0 („License”). Nu aveți voie să utilizați acest fișier decât în conformitate cu licența. Puteți obține o copie din fișierul LICENSE din distribuția sursei sau de la https://www.openssl.org/source/license.html.

Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.

5 august 2025 3.5.2