## Initialization

Before using libclamav, you should call `cl_init()` to initialize it. When it's done, you're ready to create a new scan engine by calling `cl_engine_new()`. To free resources allocated by the engine use `cl_engine_free()`. Function prototypes:

    	int cl_init(unsigned int options);
    	struct cl_engine *cl_engine_new(void);
    	int cl_engine_free(struct cl_engine *engine);

`cl_init()` and `cl_engine_free()` return `CL_SUCCESS` on success or another code on error. `cl_engine_new()` return a pointer or NULL if there's not enough memory to allocate a new engine structure.

Subsections

- Database loading
- Error handling
- Engine structure