diff options
author | 2019-08-30 18:33:17 +0000 | |
---|---|---|
committer | 2019-08-30 18:33:17 +0000 | |
commit | 4d9461faa6762224aa423e95d4a7ab96513c4703 (patch) | |
tree | 92560b6ffbfc6459f72ce182b58dbc2a307d0de0 /share/man/man3/stdarg.3 | |
parent | mop up for the pcap.3 rename; (diff) | |
download | wireguard-openbsd-4d9461faa6762224aa423e95d4a7ab96513c4703.tar.xz wireguard-openbsd-4d9461faa6762224aa423e95d4a7ab96513c4703.zip |
Move 4 manual pages from not-a-function filenames to a correct filename,
and correct Xr.
ok jmc
Diffstat (limited to 'share/man/man3/stdarg.3')
-rw-r--r-- | share/man/man3/stdarg.3 | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/share/man/man3/stdarg.3 b/share/man/man3/stdarg.3 deleted file mode 100644 index 3f369014883..00000000000 --- a/share/man/man3/stdarg.3 +++ /dev/null @@ -1,268 +0,0 @@ -.\" $OpenBSD: stdarg.3,v 1.20 2015/11/10 23:48:17 jmc Exp $ -.\" $NetBSD: stdarg.3,v 1.15 2002/08/18 08:57:07 yamt Exp $ -.\" -.\" Copyright (c) 1990, 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" the American National Standards Committee X3, on Information -.\" Processing Systems. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.\" @(#)stdarg.3 8.1 (Berkeley) 6/5/93 -.\" -.Dd $Mdocdate: November 10 2015 $ -.Dt VA_START 3 -.Os -.Sh NAME -.Nm va_start , -.Nm va_arg , -.Nm va_copy , -.Nm va_end -.Nd variable argument lists -.Sh SYNOPSIS -.In stdarg.h -.Ft void -.Fn va_start "va_list ap" last -.Ft type -.Fn va_arg "va_list ap" type -.Ft void -.Fn va_copy "va_list dst" "va_list src" -.Ft void -.Fn va_end "va_list ap" -.Sh DESCRIPTION -A function may be called with a varying number of arguments of varying -types. -The include file -.In stdarg.h -declares a type -.Vt va_list -and defines three macros for stepping -through a list of arguments whose number and types are not known to -the called function. -.Pp -The called function must declare an object of type -.Vt va_list -which is used by the macros -.Fn va_start , -.Fn va_arg , -.Fn va_end , -and, optionally, -.Fn va_copy . -.Pp -The -.Fn va_start -macro initializes -.Fa ap -for subsequent use by -.Fn va_arg , -.Fn va_copy -and -.Fn va_end , -and must be called first. -.Pp -The parameter -.Fa last -is the name of the last parameter before the variable argument list, -i.e., the last parameter of which the calling function knows the type. -.Pp -Because the address of this parameter is used in the -.Fn va_start -macro, it should not be declared as a register variable, nor as a -function, nor an array type. -.Pp -The -.Fn va_arg -macro expands to an expression that has the type and value of the next -argument in the call. -The parameter -.Fa ap -is the -.Va va_list ap -initialized by -.Fn va_start . -Each call to -.Fn va_arg -modifies -.Fa ap -so that the next call returns the next argument. -The parameter -.Fa type -is a type name specified so that the type of a pointer to an -object that has the specified type can be obtained simply by -adding a -.Ql * -to -.Fa type . -.Pp -If there is no next argument, or if -.Fa type -is not compatible with the type of the actual next argument -(as promoted according to the default argument promotions, see below), -random errors will occur. -.Pp -If the type in question is one that would normally be promoted, the -promoted type should be used as the argument to -.Fn va_arg . -The following describes which types should be promoted (and to what): -.Bl -dash -compact -.It -.Vt short -is promoted to -.Vt int -.It -.Vt float -is promoted to -.Vt double -.It -.Vt char -is promoted to -.Vt int -.El -.Pp -The same rules apply to unsigned versions of the above types, as well -as their bit-type equivalents (e.g.\& -.Vt int8_t -and -.Vt int16_t ) . -.Pp -The -.Fn va_copy -macro makes -.Fa dst -a copy of -.Fa src -as if the -.Fn va_start -macro had been applied to it followed by the same sequence of uses of the -.Fn va_arg -macro as had previously been used to reach the present state of -.Fa src . -.Pp -The -.Fn va_end -macro handles a normal return from the function whose variable argument -list was initialized by -.Fn va_start -or -.Fn va_copy . -.Sh RETURN VALUES -The first use of the -.Fn va_arg -macro after that of the -.Fn va_start -macro returns the argument after -.Fa last . -Successive invocations return the values of the remaining -arguments. -.Pp -The -.Fn va_start , -.Fn va_copy -and -.Fn va_end -macros return no value. -.Sh EXAMPLES -The function -.Fn foo -takes a string of format characters and prints out the argument -associated with each format character based on the type. -.Bd -literal -offset indent -void -foo(char *fmt, ...) -{ - va_list ap; - int d, c; - char *s; - double f; - - va_start(ap, fmt); - while (*fmt) - switch (*fmt++) { - case 's': /* string */ - s = va_arg(ap, char *); - printf("string %s\en", s); - break; - case 'd': /* int */ - d = va_arg(ap, int); - printf("int %d\en", d); - break; - case 'c': /* char */ - c = va_arg(ap, int); /* promoted */ - printf("char %c\en", c); - break; - case 'f': /* float */ - f = va_arg(ap, double); /* promoted */ - printf("float %f\en", f); - } - va_end(ap); -} -.Ed -.Sh STANDARDS -These macros are -.Em not -compatible with the historic macros they replace. -A backward compatible version can be found in the include -file -.In varargs.h . -.Pp -The -.Fn va_start , -.Fn va_arg -and -.Fn va_end -macros conform to -.St -isoC-99 . -.Sh HISTORY -The -.Fn va_start , -.Fn va_arg -and -.Fn va_end -macros were introduced in -.St -ansiC . -The -.Fn va_copy -macro was introduced in -.St -isoC-99 . -.Sh BUGS -Unlike the -.Em varargs -macros, the -.Nm stdarg -macros do not permit programmers to -code a function with no fixed arguments. -This problem generates work mainly when converting -.Em varargs -code to -.Nm stdarg -code, -but it also creates difficulties for variadic functions that -wish to pass all of their arguments on to a function -that takes an argument of type -.Vt va_list , -such as -.Xr vfprintf 3 . |