stdarg man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

stdarg(3)							     stdarg(3)

NAME
       stdarg - Handle a variable-length parameter list

SYNOPSIS
       #include <stdarg.h>

       va_list

       void va_start(
	       va_list argp,
	       parmN ); type va_arg(
	       va_list argp,
	       type ); void va_end(
	       va_list argp );

LIBRARY
       Standard C Library (libc)

PARAMETERS
       Specifies  a  variable that the stdarg macros  use to keep track of the
       current location in the parameter list.	Do not modify  this  variable.
       Specifies  the  last named parameter (the one just before the  "..." in
       the execl() definition in the Example section).	There must be at least
       one named parameter.  Specifies the type to which the expected argument
       will be converted  when passed as an argument.  Unsigned char or	 short
       arguments  are  converted to unsigned int, and float arguments are con‐
       verted to double.  Different types can be mixed, but it is  up  to  the
       routine	to  know  what	 type of argument is expected because the type
       cannot be determined at	run time.

DESCRIPTION
       The stdarg set of macros allows you to write  portable  functions  that
       accept  a  variable  number of parameters. Subroutines  that have vari‐
       able-length parameter lists (such as the printf() function),  but  that
       do  not	use the stdarg macros, are inherently nonportable because dif‐
       ferent systems use  different parameter-passing conventions.

       The stdarg macros are as follows: Defines the type of the variable used
       to  traverse  the list.	Initializes argp to point to the first unnamed
       argument.  The va_start() macro will be invoked before any  access   to
       the  unnamed arguments.	Returns the next parameter in the list pointed
       to by argp.  Cleans up at the end.

       Your function can traverse, or scan,  the  parameter  list  more	  than
       once.   Start  each traversal with a call to va_start() and end it with
       va_end().

NOTES
       The calling routine is responsible for specifying the number of	param‐
       eters  because  it  is  not always possible to determine this from  the
       stack frame.  For example, the  execl()	function  is  passed   a  null
       pointer to signal the end of the list. The printf() function determines
       the number of parameters from its fmt parameter.

       "AES Support Level:" Temporary use

EXAMPLE
       The following example is a possible implementation of the execl() func‐
       tion:

       #include	 <stdarg.h>  #define  MAXargS 100 /* **	 execl is called by **
       execl(file, arg1, arg2, . . . , (char *) 0); */ execl(char * file, .  .
       .)  {  va_list ap;
	  char *file;
	  char *args[MAXargS];
	  int argno = 0;
	  va_start(ap, file);
	  while ((args[argno++] = va_arg(ap, char *)) != (char *) 0)
	     ;	 /* Empty loop body */
	  va_end(ap);
	  return (execv(file, args)); }

SEE ALSO
       Functions: exec(2), printf(3), varargs(3), vprintf(3)

								     stdarg(3)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net