Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
NAME
     printf -- formatted output

SYNOPSIS
     printf format [arguments ...]

DESCRIPTION
     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 either c or s; otherwise it is evaluated as a  C  constant,  with
     the following extensions:

     A leading plus or minus sign is allowed.
     If the leading character is a single or double quote, or not a digit, plus,
     or minus sign, the value is the ASCII code of the next character.

     The format string is reused as often as necessary to satisfy the arguments.
     Any extra format specifications are evaluated with zero or the null string.

     Character	escape	sequences  are	in  backslash notation as defined in the
     draft proposed ANSI C Standard X3J11.  The characters  and  their	meanings
     are  as  follows: Write a <bell> character.  Write a <backspace> character.
     Write a <form-feed> character.  Write  a  <new-line>  character.	Write  a
     <carriage	return>  character.  Write a <tab> character.  Write a <vertical
     tab> character.  Write a <single quote> character.  Write a backslash char-
     acter.  num Write an 8-bit character whose ASCII value is the  1-,  2-,  or
     3-digit octal number num.

     Each  format  specification is introduced by the percent character (``%'').
     The remainder of the format specification includes, in the following order:

     Zero or more of the following flags:

     A `#' character specifying that the value should be printed in an	``alter-
     nate form''.  For c, d, and s, formats, this option has no effect.  For the
     o formats the precision of the number is increased to force the first char-
     acter of the output string to a zero.  For the x (X) format, a non-zero re-
     sult  has	the string 0x (0X) prepended to it.  For e, E, f, g, and G, for-
     mats, 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;
     A minus sign `-' which specifies left adjustment of the output in the indi-
     cated field; A `+' character specifying that there should always be a  sign
     placed  before  the  number  when using signed formats.  A space specifying
     that a blank should be left before a positive number for a  signed  format.
     A	`+'  overrides a space if both are used; A zero `0' character indicating
     that zero-padding should be used rather than blank-padding.   A  `-'  over-
     rides a `0' if both are used;

     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); An optional period, `.', followed	by  an	optional
     digit string giving a precision which specifies the number of digits to ap-
     pear 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; A character which indicates the type of for-
     mat to use (one of diouxXfwEgGcs).

     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: The argument is printed as a
     signed decimal (d or i), unsigned	decimal,  unsigned  octal,  or	unsigned
     hexadecimal  (X  or x), respectively.  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 dec-
     imal point are printed.  The argument is printed in the style e 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.  The
     argument is printed in style f or in style e (E) whichever gives full  pre-
     cision  in  minimum  space.   The	first  character of argument is printed.
     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.

RETURN VALUE
     Printf exits 0 on success, 1 on failure.

SEE ALSO
     printf(3)

HISTORY
     Printf as a command, appears in 4.3+Reno BSD.   It  is  modeled  after  the
     standard library function, printf(3).

BUGS
     Since  the number is translated from ASCII to floating-point, and then back
     again, floating-point precision may be lost.

     ANSI hexadecimal character constants were deliberately not provided.

				  July 24, 1990 		       PRINTF(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=printf&sektion=1&manpath=4.3BSD+Reno>

home | help