2011-03-12 07:14:32 +08:00
|
|
|
.\" **************************************************************************
|
|
|
|
.\" * _ _ ____ _
|
|
|
|
.\" * Project ___| | | | _ \| |
|
|
|
|
.\" * / __| | | | |_) | |
|
|
|
|
.\" * | (__| |_| | _ <| |___
|
|
|
|
.\" * \___|\___/|_| \_\_____|
|
|
|
|
.\" *
|
2014-10-24 15:08:22 +08:00
|
|
|
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
2011-03-12 07:14:32 +08:00
|
|
|
.\" *
|
|
|
|
.\" * This software is licensed as described in the file COPYING, which
|
|
|
|
.\" * you should have received as part of this distribution. The terms
|
|
|
|
.\" * are also available at http://curl.haxx.se/docs/copyright.html.
|
|
|
|
.\" *
|
|
|
|
.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
|
|
|
.\" * copies of the Software, and permit persons to whom the Software is
|
|
|
|
.\" * furnished to do so, under the terms of the COPYING file.
|
|
|
|
.\" *
|
|
|
|
.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
|
|
|
.\" * KIND, either express or implied.
|
|
|
|
.\" *
|
|
|
|
.\" **************************************************************************
|
2004-05-11 19:30:23 +08:00
|
|
|
.TH curl_global_init 3 "11 May 2004" "libcurl 7.12" "libcurl Manual"
|
2002-03-04 18:09:48 +08:00
|
|
|
.SH NAME
|
|
|
|
curl_global_init - Global libcurl initialisation
|
|
|
|
.SH SYNOPSIS
|
|
|
|
.B #include <curl/curl.h>
|
|
|
|
.sp
|
|
|
|
.BI "CURLcode curl_global_init(long " flags ");"
|
|
|
|
.ad
|
|
|
|
.SH DESCRIPTION
|
2006-07-27 06:19:42 +08:00
|
|
|
This function sets up the program environment that libcurl needs. Think of it
|
|
|
|
as an extension of the library loader.
|
2002-03-04 18:09:48 +08:00
|
|
|
|
2006-07-27 06:19:42 +08:00
|
|
|
This function must be called at least once within a program (a program is all
|
|
|
|
the code that shares a memory space) before the program calls any other
|
|
|
|
function in libcurl. The environment it sets up is constant for the life of
|
|
|
|
the program and is the same for every program, so multiple calls have the same
|
|
|
|
effect as one call.
|
2002-03-04 18:09:48 +08:00
|
|
|
|
2006-01-16 07:55:53 +08:00
|
|
|
The flags option is a bit pattern that tells libcurl exactly what features to
|
2002-03-04 18:09:48 +08:00
|
|
|
init, as described below. Set the desired bits by ORing the values together.
|
2006-01-16 07:55:53 +08:00
|
|
|
In normal operation, you must specify CURL_GLOBAL_ALL. Don't use any other
|
2008-12-29 05:56:56 +08:00
|
|
|
value unless you are familiar with it and mean to control internal operations of
|
2006-07-27 06:19:42 +08:00
|
|
|
libcurl.
|
2002-03-04 18:09:48 +08:00
|
|
|
|
2006-07-27 06:19:42 +08:00
|
|
|
\fBThis function is not thread safe.\fP You must not call it when any other
|
|
|
|
thread in the program (i.e. a thread sharing the same memory) is running.
|
|
|
|
This doesn't just mean no other thread that is using libcurl. Because
|
2014-10-24 15:08:22 +08:00
|
|
|
\fIcurl_global_init(3)\fP calls functions of other libraries that are
|
|
|
|
similarly thread unsafe, it could conflict with any other thread that uses
|
|
|
|
these other libraries.
|
2006-01-16 07:55:53 +08:00
|
|
|
|
2016-01-05 06:44:39 +08:00
|
|
|
If you are initializing libcurl from a Windows DLL you should not initialize it
|
|
|
|
from DllMain or a static initializer because Windows holds the loader lock
|
|
|
|
during that time and it could cause a deadlock.
|
|
|
|
|
2014-10-24 15:08:22 +08:00
|
|
|
See the description in \fBlibcurl(3)\fP of global environment requirements for
|
2006-07-27 06:19:42 +08:00
|
|
|
details of how to use this function.
|
2002-03-04 18:09:48 +08:00
|
|
|
|
|
|
|
.SH FLAGS
|
|
|
|
.TP 5
|
|
|
|
.B CURL_GLOBAL_ALL
|
2013-04-05 19:13:26 +08:00
|
|
|
Initialize everything possible. This sets all known bits except
|
|
|
|
\fBCURL_GLOBAL_ACK_EINTR\fP.
|
2002-03-04 18:09:48 +08:00
|
|
|
.TP
|
|
|
|
.B CURL_GLOBAL_SSL
|
|
|
|
Initialize SSL
|
|
|
|
.TP
|
|
|
|
.B CURL_GLOBAL_WIN32
|
2004-02-27 23:34:06 +08:00
|
|
|
Initialize the Win32 socket libraries.
|
2002-03-04 18:09:48 +08:00
|
|
|
.TP
|
|
|
|
.B CURL_GLOBAL_NOTHING
|
|
|
|
Initialise nothing extra. This sets no bit.
|
2012-07-12 14:40:43 +08:00
|
|
|
.TP
|
|
|
|
.B CURL_GLOBAL_DEFAULT
|
|
|
|
A sensible default. It will init both SSL and Win32. Right now, this equals
|
|
|
|
the functionality of the \fBCURL_GLOBAL_ALL\fP mask.
|
2013-03-11 21:57:07 +08:00
|
|
|
.TP
|
|
|
|
.B CURL_GLOBAL_ACK_EINTR
|
|
|
|
When this flag is set, curl will acknowledge EINTR condition when connecting
|
2014-10-24 15:08:22 +08:00
|
|
|
or when waiting for data. Otherwise, curl waits until full timeout
|
|
|
|
elapses. (Added in 7.30.0)
|
2002-03-04 18:09:48 +08:00
|
|
|
.SH RETURN VALUE
|
|
|
|
If this function returns non-zero, something went wrong and you cannot use the
|
|
|
|
other curl functions.
|
|
|
|
.SH "SEE ALSO"
|
2004-05-11 19:30:23 +08:00
|
|
|
.BR curl_global_init_mem "(3), "
|
2002-03-04 18:09:48 +08:00
|
|
|
.BR curl_global_cleanup "(3), "
|
2006-01-16 07:55:53 +08:00
|
|
|
.BR curl_easy_init "(3) "
|
|
|
|
.BR libcurl "(3) "
|