Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

curl_global_init_mem (3)

Name

curl_global_init_mem - backs

Synopsis

#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);

Description

curl_global_init_mem(3)         libcurl Manual         curl_global_init_mem(3)



NAME
       curl_global_init_mem  - Global libcurl initialization with memory call-
       backs

SYNOPSIS
       #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);

DESCRIPTION
       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.

       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 pro-
       totypes for the given callbacks must 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()

       This  function  is  otherwise  the  same as curl_global_init(3), please
       refer to that man page for documentation.

CAUTION
       Manipulating these gives considerable powers to the application to  se-
       verely screw things up for libcurl. Take care!

EXAMPLE
        curl_global_init_mem(CURL_GLOBAL_DEFAULT, curl_malloc_cb,
                             curl_free_cb, curl_realloc_cb,
                             curl_strdup_cb, curl_calloc_cb);

AVAILABILITY
       Added in 7.12.0

RETURN VALUE
       CURLE_OK  (0) means everything was ok, non-zero means an error occurred
       as <curl/curl.h> defines - see libcurl-errors(3).


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | web/curl         |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       curl_global_init(3), curl_global_cleanup(3),



NOTES
       Source code for open source software components in Oracle  Solaris  can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This    software    was    built    from    source     available     at
       https://github.com/oracle/solaris-userland.    The  original  community
       source      was      downloaded       from        https://curl.se/down-
       load/curl-7.83.1.tar.bz2.

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.



libcurl 7.83.1                  April 05, 2022         curl_global_init_mem(3)