BIO_new, BIO_set, BIO_free, BIO_vfree, BIO_free_all - BIO
allocation and freeing functions
BIO * BIO_new(
BIO_METHOD *type ); int BIO_set(
BIO_METHOD *type ); int BIO_free(
BIO *a ); void BIO_vfree(
BIO *a ); void BIO_free_all(
BIO *a );
The BIO_new() function returns a new BIO using method
The BIO_set() function sets the method of an already
The BIO_free() function frees up a single BIO. The
BIO_vfree()function also frees up a single BIO but it does
not return a value. Calling BIO_free() functon might also
have some effect on the underlying I/O structure, for
example it may close the file being referred to under certain
circumstances. For more details see the individual
The BIO_free_all() function frees up an entire BIO chain.
It does not halt if an error occurs freeing up an individual
BIO in the chain.
Some BIOs, such as memory BIOs, can be used immediately
after calling BIO_new(). Others, such as file BIOs, need
some additional initialization, and frequently a utility
function exists to create and initialize such BIOs.
If the BIO_free() function is called on a BIO chain it
will only free one BIO, resulting in a memory leak.
Calling BIO_free_all() a single BIO has the same effect as
calling BIO_free() on it other than the discarded return
Usually the type argument is supplied by a function which
returns a pointer to a BIO_METHOD. There is a naming convention
for such functions: a source/sink BIO is usually
called BIO_s_*(), and a filter is called BIO BIO_f_*().
The BIO_new() function returns a newly created BIO or NULL
if the call fails.
The BIO_set() and BIO_free() functions return 1 for success
and 0 for failure.
The BIO_free_all() and BIO_vfree() functions do not return
Create a memory BIO: BIO *mem = BIO_new(BIO_s_mem());
[ Back ]