.\" You can view this file with: .\" nroff -man [file] .\" .TH curl_global_init_mem 3 "10 May 2004" "libcurl 7.12.0" "libcurl Manual" .SH NAME curl_global_init_mem - Global libcurl initialisation with memory callbacks .SH SYNOPSIS .B #include .sp .BI "CURLcode curl_global_init_mem(long " flags, " curlMallocFunc " m, .BI " curlFreeFunc " f, " curlReallocFunc " r, " curlStrdupFunc " s, .BI " curlCallocFunc " c ");" .ad .SH DESCRIPTION This function or \fIcurl_global_init\fP should be called once (no matter how many threads or libcurl sessions that'll be used) by every application that uses libcurl. If this function or \fIcurl_global_init\fP hasn't been invoked when \fIcurl_easy_init(3)\fP is called, it will be done automatically by libcurl. The flags option is a bit pattern that tells libcurl exact what features to init, as described below. Set the desired bits by ORing the values together. User defined memory management callback routines can be registered with this function. Users can implement memory management routines to check for memory leaks, check for mis-use of the curl library etc. User registered callback routines with be invoked by this library instead of the system memory management functions like malloc, calloc, free, strdup and realloc. You must however \fBalways\fP use the \fIcurl_global_cleanup(3)\fP function, as that cannot be called automatically for you by libcurl. Calling this function more than once will cause unpredictable results. .SH FLAGS .TP 5 .B CURL_GLOBAL_ALL Initialize everything possible. This sets all known bits. .TP .B CURL_GLOBAL_SSL Initialize SSL .TP .B CURL_GLOBAL_WIN32 Initialize the Win32 socket libraries. .TP .B CURL_GLOBAL_NOTHING Initialise nothing extra. This sets no bit. .SH RETURN VALUE If this function returns non-zero, something went wrong and you cannot use the other curl functions. .SH "SEE ALSO" .BR curl_global_init "(3), " .BR curl_global_cleanup "(3), "