NAME
BIOnew, BIOset, BIOfree, BIOvfree, BIOfreeall - BIO allocation
and freeing functionsSYNOPSIS
#include
BIO * BIOnew(BIOMETHOD *type); int BIOset(BIO *a,BIOMETHOD *type); int BIOfree(BIO *a); void BIOvfree(BIO *a); void BIOfreeall(BIO *a);DESCRIPTION
The BIOnew() function returns a new BIO using method ttyyppee. BIOset() sets the method of an already existing BIO. BIOfree() frees up a single BIO, BIOvfree() also frees up a single BIO but it does not return a value. Calling BIOfree() may 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 BIOMETHOD descriptions. BIOfreeall() frees up an entire BIO chain, it does not halt if an error occurs freeing up an individual BIO in the chain.RETURN VALUES
BIOnew() returns a newly created BIO or NULL if the call fails. BIOset(), BIOfree() return 1 for success and 0 for failure. BIOfreeall() and BIOvfree() do not return values. NNOOTTEESS Some BIOs (such as memory BIOs) can be used immediately after calling BIOnew(). Others (such as file BIOs) need some additional initialization, and frequently a utility function exists to create and initialize such BIOs. If BIOfree() is called on a BIO chain it will only free one BIO resulting in a memory leak. Calling BIOfreeall() a single BIO has the same effect as calling BIOfree() on it other than the discarded return value. Normally the ttyyppee argument is supplied by a function which returns a pointer to a BIOMETHOD. There is a naming convention for such functions: a source/sink BIO is normally called BIOs*() and a filter BIO BIOf*(); EEXXAAMMPPLLEE Create a memory BIO: BIO *mem = BIOnew(BIOsmem());SEE ALSO
TBA0.9.7l 2000-09-16 BIOnew(3)