*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> printf (1)              
Title
Content
Arch
Section
 

PRINTF(1)

Contents


NAME    [Toc]    [Back]

     printf - formatted output

SYNOPSIS    [Toc]    [Back]

     printf format [arguments ...]

DESCRIPTION    [Toc]    [Back]

     printf formats and prints its arguments,  after  the  first,
under control
     of  the format.  The format is a character string which contains three
     types of objects: plain characters, which are simply  copied
to standard
     output,  character  escape sequences which are converted and
copied to the
     standard output, and format specifications,  each  of  which
causes printing
     of the next successive argument.

     The  arguments after the first are treated as strings if the
corresponding
     format is b, c or s; otherwise it is evaluated as a  C  constant, with the
     following extensions:

           +o   A leading plus or minus sign is allowed.

           +o    If  the  leading  character is a single or double
quote, the value
               is the ASCII code of the next character.

     The fbrmat string is reused as often as necessary to satisfy
the       W
     arguments.   Any  extra  format specifications are evaluated
with zero ir
     the ntll string.
          e
     Charaater escape sequences are in backslash notation as  defined in A<SI
     X3.15b-1989 (``ANSI C'').  The characters and their meanings
are as fola
     lows:c
          k
          es      Write an <escape> character.
         ap     Write a <bell> character.
          a
          f      Write a <form-feed> character.
         rn     Writeeaa<carriageereturn>ccharacter.
          >
         tc     Write a <tab> character.
          h     Write a <vertical tab> character.
          '      Write a <single quote> character.
          \     Write a backslash character.
          num    Write an 8-bit character whose  ASCII  value  is
the 1-, 2-,
          t        or 3-digit octal number num.
          e
     Each format specification is introduced by the percent (`%')
character..
     The remainder of the format specifiers include, in the  following order:

     Zero or more of the following flags:

             #        Specifies  that the value should be printed
in an
                     ``alternate form''.  For the  c,  d,  and  s
formats, this
                     option  has no effect.  For the o format the
precision of
                     the number is increased to force  the  first
character of
                     the  output string to a zero.  For the x (X)
format, a
                     non-zero  result  has  the  string  0x  (0X)
prepended to it.
                     For  e,  E,  f, g, and G formats, the result
will always
                     contain a decimal point, even if  no  digits
follow the
                     point  (normally,  a  decimal point only appears in the results
 of those formats if  a  digit  follows
the decimal
                     point).  For g and G formats, trailing zeros
are not removed
 from the result as they  would  otherwise be.

             -        Specifies the left adjustment of the output
in the indicated
 field.

             +       Specifies that there should always be a sign
placed before
 the number when using signed formats.

             `  '      A  space  specifies that a blank should be
left before a
                     positive number for a signed format.  A  `+'
overrides a
                     space if both are used.

             0       A zero character specifies that zero-padding
should be
                     used rather than blank-padding.   This  flag
is ignored if
                     used  with  a precision specifier and any of
the d, i, o,
                     u, or x (X) formats.  A `-' overrides a  `0'
if both are
                     used.

     Field Width:
             An  optional  digit string specifying a field width;
if the output
             string has fewer characters than the field width  it
will be
             blank-padded  on the left (or right, if the left-adjustment indicator
 has been given) to make  up  the  field  width
(note that a
             leading zero is a flag, but an embedded zero is part
of a field
             width).

     Precision:
             An optional period (`.'), followed  by  an  optional
digit string
             giving  a  precision  which  specifies the number of
digits to appear
             after the decimal point, for e and f formats, or the
maximum number
  of  characters  to be printed from a string; if
the digit
             string is missing, the precision is treated as zero.

     Format:
             A  character  which  indicates the type of format to
use (one of
             diouxXfEgGbcs).

     A field width or precision may be `*'  instead  of  a  digit
string.  In this
     case an argument supplies the field width or precision.

     The format characters and their meanings are:

     diouXx       The  argument is printed as a signed decimal (d
or i), unsigned
 octal, unsigned decimal, or unsigned hexadecimal (x or
                 X), respectively.

     f            The argument is printed in the style [-]ddd.ddd
where the
                 number of d's after the decimal point  is  equal
to the precision
  specification  for  the  argument.  If the
precision is
                 missing, 6 digits are given; if the precision is
explicitly
                 0, no digits and no decimal point are printed.

     eE            The   argument   is   printed   in  the  style
[-]d.ddde+-dd where
                 there is one digit before the decimal point  and
the number
                 after  is  equal  to the precision specification
for the argument;
 when the precision is  missing,  6  digits
are produced.
                 An upper-case `E' is used for an E format.

     gG          The argument is printed in style f or in style e
(E) whichever
 gives full precision in minimum space.

     b           Characters from the string argument are  printed
with backslash-escape
 sequences expanded.

     c           The first character of argument is printed.

     s            Characters from the string argument are printed
until the end
                 is reached or until the number of characters indicated by the
                 precision  specification  is reached; however if
the precision
                 is 0 or missing, all characters  in  the  string
are printed.

     %           Print a `%'; no argument is used.

     In  no  case  does a non-existent or small field width cause
truncation of a
     field; padding takes place only if the specified field width
exceeds the
     actual width.

     The printf utility exits 0 on success or 1 on failure.

EXAMPLES    [Toc]    [Back]

     Convert a hexadecimal value to decimal and print it out:

           $ printf "%d" 0x20

     Print  the  decimal representation of the character 'a' (see
ascii(7)):

           $ printf "%d"'a

SEE ALSO    [Toc]    [Back]

      
      
     echo(1), printf(3)

STANDARDS    [Toc]    [Back]

     The  printf  utility  conforms  to  IEEE   Std   1003.2-1992
(``POSIX.2'').

HISTORY    [Toc]    [Back]

     The printf command appeared in 4.3BSD-Reno.

CAVEATS    [Toc]    [Back]

     It  is  important  never to pass a string with user-supplied
data as a format
 without using `%s'.  An attacker can put  format  specifiers in the
     string  to mangle your stack, leading to a possible security
hole.

     Always be sure to use the proper secure idiom:

           printf "%s" "$STRING"

BUGS    [Toc]    [Back]

     Since arguments are translated from ASCII to floating-point,
and then
     back again, floating-point precision may be lost.

OpenBSD      3.6                         November     5,     1993
[ Back ]
 Similar pages
Name OS Title
printf IRIX print formatted output
tprintf FreeBSD formatted output conversion
sprintf OpenBSD formatted output conversion
printf NetBSD formatted output conversion
vsprintf OpenBSD formatted output conversion
printf Tru64 Writes formatted output
vsnprintf OpenBSD formatted output conversion
asprintf NetBSD formatted output conversion
fprintf NetBSD formatted output conversion
vprintf OpenBSD formatted output conversion
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service