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.

Cisco 2016-04-21