mirror of
https://github.com/moparisthebest/curl
synced 2024-11-15 22:15:13 -05:00
libcurl.3: fix formatting
refer to functions with the man page section properly
This commit is contained in:
parent
b486d1ce05
commit
7eb7f7c32d
@ -148,18 +148,16 @@ the library code. For example, when libcurl is built for SSL
|
|||||||
capability via the GNU TLS library, there is an elaborate tree inside
|
capability via the GNU TLS library, there is an elaborate tree inside
|
||||||
that library that describes the SSL protocol.
|
that library that describes the SSL protocol.
|
||||||
|
|
||||||
\fIcurl_global_init()\fP is the function that you must call. This may
|
\fIcurl_global_init(3)\fP is the function that you must call. This may
|
||||||
allocate resources (e.g. the memory for the GNU TLS tree mentioned
|
allocate resources (e.g. the memory for the GNU TLS tree mentioned above), so
|
||||||
above), so the companion function \fIcurl_global_cleanup()\fP releases
|
the companion function \fIcurl_global_cleanup(3)\fP releases them.
|
||||||
them.
|
|
||||||
|
|
||||||
The basic rule for constructing a program that uses libcurl is this:
|
The basic rule for constructing a program that uses libcurl is this: Call
|
||||||
Call \fIcurl_global_init()\fP, with a \fICURL_GLOBAL_ALL\fP argument,
|
\fIcurl_global_init(3)\fP, with a \fICURL_GLOBAL_ALL\fP argument, immediately
|
||||||
immediately after the program starts, while it is still only one
|
after the program starts, while it is still only one thread and before it uses
|
||||||
thread and before it uses libcurl at all. Call
|
libcurl at all. Call \fIcurl_global_cleanup(3)\fP immediately before the
|
||||||
\fIcurl_global_cleanup()\fP immediately before the program exits, when
|
program exits, when the program is again only one thread and after its last
|
||||||
the program is again only one thread and after its last use of
|
use of libcurl.
|
||||||
libcurl.
|
|
||||||
|
|
||||||
You can call both of these multiple times, as long as all calls meet
|
You can call both of these multiple times, as long as all calls meet
|
||||||
these requirements and the number of calls to each is the same.
|
these requirements and the number of calls to each is the same.
|
||||||
@ -184,48 +182,42 @@ your code doesn't know about other parts of the program -- it doesn't
|
|||||||
know whether they use libcurl or not. And its code doesn't necessarily
|
know whether they use libcurl or not. And its code doesn't necessarily
|
||||||
run at the start and end of the whole program.
|
run at the start and end of the whole program.
|
||||||
|
|
||||||
A module like this must have global constant functions of its own,
|
A module like this must have global constant functions of its own, just like
|
||||||
just like \fIcurl_global_init()\fP and \fIcurl_global_cleanup()\fP.
|
\fIcurl_global_init(3)\fP and \fIcurl_global_cleanup(3)\fP. The module thus
|
||||||
The module thus has control at the beginning and end of the program
|
has control at the beginning and end of the program and has a place to call
|
||||||
and has a place to call the libcurl functions. Note that if multiple
|
the libcurl functions. Note that if multiple modules in the program use
|
||||||
modules in the program use libcurl, they all will separately call the
|
libcurl, they all will separately call the libcurl functions, and that's OK
|
||||||
libcurl functions, and that's OK because only the first
|
because only the first \fIcurl_global_init(3)\fP and the last
|
||||||
\fIcurl_global_init()\fP and the last \fIcurl_global_cleanup()\fP in a
|
\fIcurl_global_cleanup(3)\fP in a program change anything. (libcurl uses a
|
||||||
program change anything. (libcurl uses a reference count in static
|
reference count in static memory).
|
||||||
memory).
|
|
||||||
|
|
||||||
In a C++ module, it is common to deal with the global constant
|
In a C++ module, it is common to deal with the global constant situation by
|
||||||
situation by defining a special class that represents the global
|
defining a special class that represents the global constant environment of
|
||||||
constant environment of the module. A program always has exactly one
|
the module. A program always has exactly one object of the class, in static
|
||||||
object of the class, in static storage. That way, the program
|
storage. That way, the program automatically calls the constructor of the
|
||||||
automatically calls the constructor of the object as the program
|
object as the program starts up and the destructor as it terminates. As the
|
||||||
starts up and the destructor as it terminates. As the author of this
|
author of this libcurl-using module, you can make the constructor call
|
||||||
libcurl-using module, you can make the constructor call
|
\fIcurl_global_init(3)\fP and the destructor call \fIcurl_global_cleanup(3)\fP
|
||||||
\fIcurl_global_init()\fP and the destructor call
|
and satisfy libcurl's requirements without your user having to think about it.
|
||||||
\fIcurl_global_cleanup()\fP and satisfy libcurl's requirements without
|
|
||||||
your user having to think about it.
|
|
||||||
|
|
||||||
\fIcurl_global_init()\fP has an argument that tells what particular
|
\fIcurl_global_init(3)\fP has an argument that tells what particular parts of
|
||||||
parts of the global constant environment to set up. In order to
|
the global constant environment to set up. In order to successfully use any
|
||||||
successfully use any value except \fICURL_GLOBAL_ALL\fP (which says to
|
value except \fICURL_GLOBAL_ALL\fP (which says to set up the whole thing), you
|
||||||
set up the whole thing), you must have specific knowledge of internal
|
must have specific knowledge of internal workings of libcurl and all other
|
||||||
workings of libcurl and all other parts of the program of which it is
|
parts of the program of which it is part.
|
||||||
part.
|
|
||||||
|
|
||||||
A special part of the global constant environment is the identity of
|
A special part of the global constant environment is the identity of the
|
||||||
the memory allocator. \fIcurl_global_init()\fP selects the system
|
memory allocator. \fIcurl_global_init(3)\fP selects the system default memory
|
||||||
default memory allocator, but you can use \fIcurl_global_init_mem()\fP
|
allocator, but you can use \fIcurl_global_init_mem(3)\fP to supply one of your
|
||||||
to supply one of your own. However, there is no way to use
|
own. However, there is no way to use \fIcurl_global_init_mem(3)\fP in a
|
||||||
\fIcurl_global_init_mem()\fP in a modular program -- all modules in
|
modular program -- all modules in the program that might use libcurl would
|
||||||
the program that might use libcurl would have to agree on one
|
have to agree on one allocator.
|
||||||
allocator.
|
|
||||||
|
|
||||||
There is a failsafe in libcurl that makes it usable in simple
|
There is a failsafe in libcurl that makes it usable in simple situations
|
||||||
situations without you having to worry about the global constant
|
without you having to worry about the global constant environment at all:
|
||||||
environment at all: \fIcurl_easy_init()\fP sets up the environment
|
\fIcurl_easy_init(3)\fP sets up the environment itself if it hasn't been done
|
||||||
itself if it hasn't been done yet. The resources it acquires to do so
|
yet. The resources it acquires to do so get released by the operating system
|
||||||
get released by the operating system automatically when the program
|
automatically when the program exits.
|
||||||
exits.
|
|
||||||
|
|
||||||
This failsafe feature exists mainly for backward compatibility because
|
This failsafe feature exists mainly for backward compatibility because
|
||||||
there was a time when the global functions didn't exist. Because it
|
there was a time when the global functions didn't exist. Because it
|
||||||
|
Loading…
Reference in New Issue
Block a user