summaryrefslogtreecommitdiffstats
path: root/man3/stdarg.3
diff options
context:
space:
mode:
authorKrónos <Krónos@Sāturnus>1993-10-11 00:00:00 +0100
committerAlejandro Colomar <alx@kernel.org>2022-12-15 23:09:38 +0100
commit9e0fdb0c0192079e5847f49832374ea28b5ad436 (patch)
tree0eb6ca406983d655aa04225550ec9f8a6c265e90 /man3/stdarg.3
parent3c23040573650f36a3f2778a3629f4ae7e6c10ab (diff)
downloadman-pages-prehistory-backwards.tar.gz
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.3193
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).