| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- .\" generated by cd2nroff 0.1 from curl_global_init_mem.md
- .TH curl_global_init_mem 3 "2025-01-17" libcurl
- .SH NAME
- curl_global_init_mem \- global libcurl initialization with memory callbacks
- .SH SYNOPSIS
- .nf
- #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);
- .fi
- .SH DESCRIPTION
- This function works exactly as \fIcurl_global_init(3)\fP with one addition: it
- allows the application to set callbacks to replace the otherwise used internal
- memory functions.
- If you are using libcurl from multiple threads or libcurl was built with the
- threaded resolver option then the callback functions must be thread safe. The
- threaded resolver is a common build option to enable (and in some cases the
- default) so we strongly urge you to make your callback functions thread safe.
- All callback arguments must be set to valid function pointers. The
- prototypes for the given callbacks must match these:
- .IP "void *malloc_callback(size_t size);"
- To replace malloc()
- .IP "void free_callback(void *ptr);"
- To replace free()
- .IP "void *realloc_callback(void *ptr, size_t size);"
- To replace realloc()
- .IP "char *strdup_callback(const char *str);"
- To replace strdup()
- .IP "void *calloc_callback(size_t nmemb, size_t size);"
- To replace calloc()
- This function is otherwise the same as \fIcurl_global_init(3)\fP, please refer
- to that man page for documentation.
- .SH CAUTION
- Manipulating these gives considerable powers to the application to severely
- screw things up for libcurl. Take care!
- .SH PROTOCOLS
- This functionality affects all supported protocols
- .SH EXAMPLE
- .nf
- extern void *malloc_cb(size_t);
- extern void free_cb(void *);
- extern void *realloc_cb(void *, size_t);
- extern char *strdup_cb(const char *);
- extern void *calloc_cb(size_t, size_t);
- int main(void)
- {
- curl_global_init_mem(CURL_GLOBAL_DEFAULT, malloc_cb,
- free_cb, realloc_cb,
- strdup_cb, calloc_cb);
- }
- .fi
- .SH AVAILABILITY
- Added in curl 7.12.0
- .SH RETURN VALUE
- CURLE_OK (0) means everything was OK, non\-zero means an error occurred as
- \fI<curl/curl.h>\fP defines \- see \fIlibcurl\-errors(3)\fP.
- .SH SEE ALSO
- .BR curl_global_cleanup (3),
- .BR curl_global_init (3)
|