curl_global_init_mem (3) - Linux Manuals

curl_global_init_mem: Global libcurl initialisation with memory callbacks


curl_global_init_mem - Global libcurl initialisation with memory callbacks


#include <curl/curl.h>
CURLcode curl_global_init_mem(long  flags,
 curl_malloc_callback m,
 curl_free_callback f,
 curl_realloc_callback r,
 curl_strdup_callback s,
 curl_calloc_callback c );


This function works exactly as curl_global_init(3) with one addition: it allows the application to set callbacks to replace the otherwise used internal memory functions.

This man page only adds documentation for the callbacks, see the curl_global_init(3) man page for all the rest. When you use this function, all callback arguments must be set to valid function pointers.

The prototypes for the given callbacks should match these:

void *malloc_callback(size_t size);
To replace malloc()
void free_callback(void *ptr);
To replace free()
void *realloc_callback(void *ptr, size_t size);
To replace realloc()
char *strdup_callback(const char *str);
To replace strdup()
void *calloc_callback(size_t nmemb, size_t size);
To replace calloc()


Manipulating these gives considerable powers to the application to severely screw things up for libcurl. Take care!