mirror of
https://github.com/curl/curl.git
synced 2024-11-21 01:16:58 +08:00
55452ebdff
The define is not in our name space and is therefore not protected by
our API promises.
It was only really used by libcurl internals but was mostly erased from
there already in 8aabbf5
(March 2015). This is supposedly the final
death blow to that define from everywhere.
As a side-effect, making sure _MPRINTF_REPLACE is gone and not used, I
made the lib tests in tests/libtest/ use curl_printf.h for its redefine
magic and then subsequently the use of sprintf() got banned in the tests
as well (as it is in libcurl internals) and I then replaced them all
with snprintf().
In the unlikely event that any users is actually using this define and
gets sad by this change, it is very easily copied to the user's own
code.
104 lines
3.8 KiB
Groff
104 lines
3.8 KiB
Groff
.\" **************************************************************************
|
|
.\" * _ _ ____ _
|
|
.\" * Project ___| | | | _ \| |
|
|
.\" * / __| | | | |_) | |
|
|
.\" * | (__| |_| | _ <| |___
|
|
.\" * \___|\___/|_| \_\_____|
|
|
.\" *
|
|
.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
.\" *
|
|
.\" * 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 https://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.
|
|
.\" *
|
|
.\" **************************************************************************
|
|
.TH curl_printf 3 "30 April 2004" "libcurl 7.12" "libcurl Manual"
|
|
.SH NAME
|
|
curl_maprintf, curl_mfprintf, curl_mprintf, curl_msnprintf, curl_msprintf
|
|
curl_mvaprintf, curl_mvfprintf, curl_mvprintf, curl_mvsnprintf,
|
|
curl_mvsprintf - formatted output conversion
|
|
.SH SYNOPSIS
|
|
.B #include <curl/mprintf.h>
|
|
.sp
|
|
.BI "int curl_mprintf(const char *" format ", ...);"
|
|
.br
|
|
.BI "int curl_mfprintf(FILE *" fd ", const char *" format ", ...);"
|
|
.br
|
|
.BI "int curl_msprintf(char *" buffer ", const char *" format ", ...);"
|
|
.br
|
|
.BI "int curl_msnprintf(char *" buffer ", size_t " maxlength ", const char *" format ", ...);"
|
|
.br
|
|
.BI "int curl_mvprintf(const char *" format ", va_list " args ");"
|
|
.br
|
|
.BI "int curl_mvfprintf(FILE *" fd ", const char *" format ", va_list " args ");"
|
|
.br
|
|
.BI "int curl_mvsprintf(char *" buffer ", const char *" format ", va_list " args ");"
|
|
.br
|
|
.BI "int curl_mvsnprintf(char *" buffer ", size_t " maxlength ", const char *" format ", va_list " args ");"
|
|
.br
|
|
.BI "char *curl_maprintf(const char *" format ", ...);"
|
|
.br
|
|
.BI "char *curl_mvaprintf(const char *" format ", va_list " args ");"
|
|
.SH DESCRIPTION
|
|
These are all functions that produce output according to a format string and
|
|
given arguments. These are mostly clones of the well-known C-style functions
|
|
and there will be no detailed explanation of all available formatting rules
|
|
and usage here.
|
|
|
|
See this table for notable exceptions.
|
|
.RS
|
|
.TP
|
|
.B curl_mprintf()
|
|
Normal printf() clone.
|
|
.TP
|
|
.B curl_mfprintf()
|
|
Normal fprintf() clone.
|
|
.TP
|
|
.B curl_msprintf()
|
|
Normal sprintf() clone.
|
|
.TP
|
|
.B curl_msnprintf()
|
|
snprintf() clone. Many systems don't have this. It is just like \fBsprintf\fP
|
|
but with an extra argument after the buffer that specifies the length of the
|
|
target buffer.
|
|
.TP
|
|
.B curl_mvprintf()
|
|
Normal vprintf() clone.
|
|
.TP
|
|
.B curl_mvfprintf()
|
|
Normal vfprintf() clone.
|
|
.TP
|
|
.B curl_mvsprintf()
|
|
Normal vsprintf() clone.
|
|
.TP
|
|
.B curl_mvsnprintf()
|
|
vsnprintf() clone. Many systems don't have this. It is just like
|
|
\fBvsprintf\fP but with an extra argument after the buffer that specifies the
|
|
length of the target buffer.
|
|
.TP
|
|
.B curl_maprintf()
|
|
Like printf() but returns the output string as a malloc()ed string. The
|
|
returned string must be free()ed by the receiver.
|
|
.TP
|
|
.B curl_mvaprintf()
|
|
Like curl_maprintf() but takes a va_list pointer argument instead of a
|
|
variable amount of arguments.
|
|
.RE
|
|
.SH AVAILABILITY
|
|
These functions will be removed from the public libcurl API in the future. Do
|
|
not use them in any new programs or projects.
|
|
.SH RETURN VALUE
|
|
The \fBcurl_maprintf\fP and \fBcurl_mvaprintf\fP functions return a pointer to
|
|
a newly allocated string, or NULL if it failed.
|
|
|
|
All other functions return the number of characters they actually outputted.
|
|
.SH "SEE ALSO"
|
|
.BR printf "(3), " sprintf "(3), " fprintf "(3), " vprintf "(3) "
|