diff options
| author | Krónos <Krónos@Sāturnus> | 1993-10-11 00:00:00 +0100 |
|---|---|---|
| committer | Alejandro Colomar <alx@kernel.org> | 2022-12-15 23:09:38 +0100 |
| commit | 9e0fdb0c0192079e5847f49832374ea28b5ad436 (patch) | |
| tree | 0eb6ca406983d655aa04225550ec9f8a6c265e90 /man3/stdarg.3 | |
| parent | 3c23040573650f36a3f2778a3629f4ae7e6c10ab (diff) | |
| download | man-pages-prehistory-backwards.tar.gz | |
man-pages 1.0prehistory-backwards
man-pages-1.1 seems to be missing. :/
Link: <https://www.win.tue.nl/~aeb/ftpdocs/linux-local/manpages.archive/>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Diffstat (limited to 'man3/stdarg.3')
| -rw-r--r-- | man3/stdarg.3 | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/man3/stdarg.3 b/man3/stdarg.3 deleted file mode 100644 index 91daf50748..0000000000 --- a/man3/stdarg.3 +++ /dev/null @@ -1,193 +0,0 @@ -.\" Copyright (c) 1990, 1991 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. All advertising materials mentioning features or use of this software -.\" must display the following acknowledgement: -.\" This product includes software developed by the University of -.\" California, Berkeley and its contributors. -.\" 4. 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 6.8 (Berkeley) 6/29/91 -.\" -.\" Converted for Linux, Mon Nov 29 15:11:11 1993, faith@cs.unc.edu -.\" -.TH STDARG 3 "29 November 1993" "BSD MANPAGE" "Linux Programmer's Manual" -.SH NAME -stdarg \- variable argument lists -.SH SYNOPSIS -.B #include <stdarg.h> -.sp -.BI "void va_start( va_list " ap ", " last ); -.br -.BI "" type "va_arg( va_list " ap ", " type ); -.br -.BI "void va_end( va_list " ap ); -.SH DESCRIPTION -A function may be called with a varying number of arguments of varying -types. The include file -.I stdarg.h -declares a type -.B 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 -.B va_list -which is used by the macros -.BR va_start , -.BR va_arg , -and -.BR va_end . -.PP -The -.B va_start -macro initializes -.I ap -for subsequent use by -.B va_arg -and -.BR va_end , -and must be called first. -.PP -The parameter -.I 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 -.B va_start -macro, it should not be declared as a register variable, or as a function -or an array type. -.PP -The -.B va_start -macro returns no value. -.PP -The -.B va_arg -macro expands to an expression that has the type and value of the next -argument in the call. The parameter -.I ap -is the -.BI va_list " " ap -initialized by -.BR va_start . -Each call to -.B va_arg -modifies -.I ap -so that the next call returns the next argument. The parameter -.I 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 * to -.IR type . -.PP -If there is no next argument, or if -.I type -is not compatible with the type of the actual next argument (as promoted -according to the default argument promotions), random errors will occur. -.PP -The first use of the -.B va_arg -macro after that of the -.B va_start -macro returns the argument after -.IR last . -Successive invocations return the values of the remaining arguments. -.PP -The -.B va_end -macro handles a normal return from the function whose variable argument -list was initialized by -.BR va_start . -.PP -The -.B va_end -macro returns no value. -.SH EXAMPLES -The function -.I foo -takes a string of format characters and prints out the argument associated -with each format character based on the type. -.RS -.nf -void foo(char *fmt, ...) -{ - va_list ap; - int d; - char c, *p, *s; - - 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, char); - printf("char %c\en", c); - break; - } - va_end(ap); -} -.fi -.RE -.SH STANDARDS -The -.BR va_start , -.BR va_arg , -and -.B va_end -macros conform to ANSI C3.159-1989 (``ANSI C''). -.SH COMPATIBILITY -These macros are -.I not -compatible with the historic macros they replace. A backward compatible -version can be found in the include file -.IR varargs.h . -.SH BUGS -Unlike the -.B varargs -macros, the -.B stdarg -macros do not permit programmers to code a function with no fixed -arguments. This problem generates work mainly when converting -.B varargs -code to -.B stdarg -code, but it also creates difficulties for variadic functions that wish to -pass all of their arguments on to a function that takes a -.B va_list -argument, such as -.BR vfprintf (3). |
