sprintf(9F)




NAME

     sprintf, snprintf - format characters in memory


SYNOPSIS

     #include <sys/ddi.h>

     char *sprintf(char *buf, const char *fmt, ...);

     size_t snprintf(char *buf, size_t n, const char *fmt, ...);


INTERFACE LEVEL

     Solaris DDI specific (Solaris DDI).


PARAMETERS

     buf   Pointer to a character string.

     fmt   Pointer to a character string.


DESCRIPTION

     sprintf() 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.

     The snprintf() function is identical to sprintf()  with  the
     addition  of the argument n, which specifies the size of the
     buffer referred to by buf. The buffer is  always  terminated
     with the null byte.

  Conversion Specifications
     Each conversion specification is introduced by the % charac-
     ter, after which the following appear in sequence:

     An optional value  specifying  a  minimum  field  width  for
     numeric  conversion.  The  converted  value  will  be right-
     justified and, if it has fewer characters than the  minimum,
     is  padded  with leading spaces unless the field width is an
     octal value, then it is padded with leading zeroes.

     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  conver-
     sion 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 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.

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

     p     The argument is taken to be a pointer;  the  value  of
           the  pointer is displayed in unsigned hexadecimal. The
           display format is equivalent to  %lx.  To  avoid  lint
           warnings,  cast pointers to type void * when using the
           %p format specifier.

     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, the string <null string> is used
           in its place.

     %     Copy a %; no argument is converted.


RETURN VALUES

     sprintf() returns its first argument, buf.

     snprintf() returns the number of characters formatted,  that
     is, the number of characters that would have been written to
     the buffer if it were large enough. If the  value  of  n  is
     less  than  or equal to 0 on a call to snprintf(), the func-
     tion simply returns the number of characters formatted.


CONTEXT

     sprintf() and snprintf() can be called from user  or  inter-
     rupt context.


SEE ALSO

     Writing Device Drivers


Man(1) output converted with man2html