vsprintf man page on SmartOS

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

VSPRINTF(9F)							  VSPRINTF(9F)

NAME
       vsprintf - format characters in memory

SYNOPSIS
       #include <sys/varargs.h>
	#include <sys/ddi.h>
	#include <sys/sunddi.h>

       char *vsprintf(char *buf, const char *fmt, va_list ap);

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI).

PARAMETERS
       buf
	       Pointer to a character string.

       fmt
	       Pointer to a character string.

       ap
	       Pointer to a variable argument list.

DESCRIPTION
       vsprintf()  builds a string in buf under the control of the format fmt.
       The format is a character string with either  plain  characters,	 which
       are simply copied into buf, or conversion specifications, each of which
       converts zero or more arguments, again copied into buf. The results are
       unpredictable  if  there	 are  insufficient  arguments  for the format;
       excess arguments are simply ignored. It is the user's responsibility to
       ensure that enough storage is available for buf.

       ap contains the list of arguments used by the conversion specifications
       in fmt. ap is a variable argument list and must be initialized by call‐
       ing   va_start(9F).  va_end(9F)	is used to clean up and must be called
       after each traversal of the list. Multiple traversals of	 the  argument
       list, each bracketed by	va_start(9F) and  va_end(9F), are possible.

       Each  conversion	 specification is introduced by the % character, after
       which the following appear in sequence:

       An optional decimal digit specifying a minimum field width for  numeric
       conversion. The converted value will be right-justified and padded with
       leading zeroes if it has fewer characters than the minimum.

       An optional l (ll) specifying that a following d, D, o, O, x, X,	 or  u
       conversion character applies to a long (long long) integer argument. An
       l (ll) before any other conversion character is ignored.

       A character indicating the type of conversion to be applied:

       d,D,o,O,x,X,u
			The integer argument is converted  to  signed  decimal
			(d,  D),  unsigned  octal (o, O), unsigned hexadecimal
			(x, X) or  unsigned  decimal  (u),  respectively,  and
			copied.	 The letters abcdef are used for x conversion.
			The letters ABCDEF are used for X conversion.

       c
			The character value of the argument is copied.

       b
			This conversion uses  two  additional  arguments.  The
			first is an integer, and is converted according to the
			base specified in  the	second	argument.  The	second
			argument   is	a   character	string	 in  the  form
			<base>[<arg>...]. The  base  supplies  the  conversion
			base  for  the	first argument as a binary value;  \10
			gives octal, \20 gives	hexadecimal.  Each  subsequent
			<arg>  is a sequence of characters, the first of which
			is the bit number to be tested, and subsequent charac‐
			ters,  up  to the next bit number or terminating null,
			supply the name of the bit.

			A bit number is a binary-valued character in the range
			1-32.  For  each  bit  set  in the first argument, and
			named in  the  second  argument,  the  bit  names  are
			copied, separated by commas, and bracketed by < and >.
			Thus,  the  following  function	 call  would  generate
			reg=3<BitTwo,BitOne>\n in buf.

			vsprintf(buf, "reg=%b\n", 3, "\10\2BitTwo\1BitOne")

       s
			The  argument  is  taken  to  be  a  string (character
			pointer), and characters from the  string  are	copied
			until a null character is encountered.	If the charac‐
			ter pointer is NULL on SPARC, the string  <nullstring>
			is used in its place; on x86, it is undefined.

       %
			Copy a %; no argument is converted.

RETURN VALUES
       vsprintf() returns its first parameter, buf.

CONTEXT
       vsprintf() can be called from user, kernel, or interrupt context.

EXAMPLES
       Example 1 Using vsprintf()

       In this example, xxerror() accepts a pointer to a  dev_info_t structure
       dip, an error level level, a format  fmt,  and  a  variable  number  of
       arguments.   The routine uses vsprintf() to format the error message in
       buf. Note  that	 va_start(9F)  and  va_end(9F)	bracket	 the  call  to
       vsprintf().  instance,  level,  name,  and   buf	 are  then  passed  to
       cmn_err(9F).

	 #include <sys/varargs.h>
	 #include <sys/ddi.h>
	 #include <sys/sunddi.h>
	 #define MAX_MSG 256

	 void
	 xxerror(dev_info_t *dip, int level, const char *fmt, ...)
	 {
	      va_list	     ap;
	      int	instance;
	      char	buf[MAX_MSG],
			*name;

	      instance = ddi_get_instance(dip);
	      name = ddi_binding_name(dip);

	      /* format buf using fmt and arguments contained in ap */
	      va_start(ap, fmt);
	      vsprintf(buf, fmt, ap);
	      va_end(ap);

	      /* pass formatted string to cmn_err(9F) */
	      cmn_err(level, "%s%d: %s", name, instance, buf);
	 }

SEE ALSO
       cmn_err(9F), ddi_binding_name(9F), ddi_get_instance(9F), va_arg(9F)

       Writing Device Drivers

				  May 6, 1996			  VSPRINTF(9F)
[top]

List of man pages available for SmartOS

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